Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mN2EQ-0006n0-4c for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Sep 2021 00:11:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mN2EO-0006di-3Z for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Sep 2021 00:11:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mN2EN-0006da-HF for pgsql-hackers@lists.postgresql.org; Mon, 06 Sep 2021 00:11:23 +0000 Received: from mail-il1-x12d.google.com ([2607:f8b0:4864:20::12d]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mN2EF-0005TI-H6 for pgsql-hackers@lists.postgresql.org; Mon, 06 Sep 2021 00:11:22 +0000 Received: by mail-il1-x12d.google.com with SMTP id j15so5224303ila.1 for ; Sun, 05 Sep 2021 17:11:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=kI+dLiDYYv35cw8ilvJ9e7N0ggIXUbxjn2enrlu2AOU=; b=COGokzqGxRlJBXlDqPoeup+0tOxkSCDFiz4ZVwDUGDHHE8GntJYi0ED1Jjna6bMtSw YCGV6DxcTC+A/PGLZaS3dk6Qv/oLTLh9GjW9fQYpE4Qo0EzNGTzY5weKqcgx2he5wCKv EMWW15EyvQT+JagC7Fdr4v8F1PEMBmvDtR+48gAuytYg9nrMCyzEswGHznfxY9E4ZWGt KrHWxdPSFUqollRW/9B4/algVTiBp7r9lNuSLOgQFjMFH1lzMpl7Tjuh5+hpqrQGkCqb 9Lx81CkvKDbv4K/BMj2LZRSX3BX2xWjn5/gEixKIkLodd/guEMqBqxV3F6RntsfRLoWp 2gCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=kI+dLiDYYv35cw8ilvJ9e7N0ggIXUbxjn2enrlu2AOU=; b=IDQ/CdAhpIO9gMo6CHKgXSUBMcjkiHhlLV9qrKZhXVlAUqfwHrYzhrB9BF44OYPDXI PQuqM+3y7In5hpbwKdCSVz5hVo9Bl6MyvJ2Svddd3OVsX7E2iDDSIlX0b13uvR2EFt2D AUMvP5FDy5VY8iikeNahrAvHdeGgyybYv+Z5lQTR39O38o6Dt50WKwZbbcNoN7XdkCXp 5/otNhp2vKlMhodWpUkfMDN1s1OntWQOAY7owWgZW+APfI0V9P1CyVKf/a1t2c9h7fnb gp+yQMle3K6FROXf1e+K8+fwsdhG029aPE0RUzSKE2acDtn3CSps+p1dNRp4BHogfl6V Xukg== X-Gm-Message-State: AOAM532QmQNDs5p0Fenck8m9AraQQaeQMObgu3QZ4fUjxOTMgcYEJVJb c2MMq45dzfUKyydvw/TyBzt7Rw== X-Google-Smtp-Source: ABdhPJxUERb2y4dNKpA5n4gsXyFTq3OteUPv0NZCKEZ+XzEXYsBaf0LR8nryMrHGFCCKSKwimMmR/g== X-Received: by 2002:a92:c109:: with SMTP id p9mr6590961ile.115.1630887072481; Sun, 05 Sep 2021 17:11:12 -0700 (PDT) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id c5sm3716983ilk.48.2021.09.05.17.11.11 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 05 Sep 2021 17:11:11 -0700 (PDT) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id C9B20800D7C; Sun, 5 Sep 2021 19:11:10 -0500 (CDT) Date: Sun, 5 Sep 2021 19:11:10 -0500 From: Justin Pryzby To: Tom Lane Cc: Peter Smith , Bruce Momjian , pgsql-hackers@lists.postgresql.org Subject: Re: strange case of "if ((a & b))" Message-ID: <20210906001110.GF26465@telsasoft.com> References: <20210428182936.GE27406@telsasoft.com> <2896014.1619635209@sss.pgh.pa.us> <20210625023110.GI29179@telsasoft.com> <20210818180222.GE13002@momjian.us> <20210818182856.GR10479@telsasoft.com> <1673521.1629342537@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="XaUbO9McV5wPQijU" Content-Disposition: inline In-Reply-To: <1673521.1629342537@sss.pgh.pa.us> User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --XaUbO9McV5wPQijU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Aug 18, 2021 at 11:08:57PM -0400, Tom Lane wrote: > Peter Smith writes: > > On Thu, Aug 19, 2021 at 4:29 AM Justin Pryzby wrote: > >> - state->oneCol = (origTupdesc->natts == 1) ? true : false; > >> + state->oneCol = origTupdesc->natts == 1; > > FWIW, I am definitely not a fan of removing the parentheses in this > context, because readers might wonder if you meant an "a = b = 1" > multiple-assignment, or even misread it as that and be confused. > So I'd prefer > > state->oneCol = (origTupdesc->natts == 1); > > In the context of "return (a == b)", I'm about neutral on whether > to keep the parens or not, but I wonder why this patch does some > of one and some of the other. > > I do agree that "x ? true : false" is silly in contexts where x > is guaranteed to yield zero or one. What you need to be careful > about is where x might yield other bitpatterns, for example > "(flags & SOMEFLAG) ? true : false". Pre-C99, this type of coding > was often *necessary*. With C99, it's only necessary if you're > not sure that the compiler will cast the result to boolean. I revised the patch based on these comments. I think my ternary patch already excluded the cases that test something other than a boolean. Peter: you quoted my patch but didn't comment on it. Your regex finds a lot of conditional boolean assignments, but I agree that they're best left alone. My patches are to clean up silly cases, not to rewrite things in a way that's arguably better (but arguably not worth changing and so also not worth arguing that it's better). -- Justin --XaUbO9McV5wPQijU Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-Avoid-double-parens.patch" From 51dab66eb3cbeccfa5bad0f1b8a26b94523edb65 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Wed, 28 Apr 2021 14:12:49 -0500 Subject: [PATCH 1/2] Avoid double parens git grep -l '\tuphdr->t_hoff)); - else if ((infomask & HEAP_HASNULL)) + else if (infomask & HEAP_HASNULL) report_corruption(ctx, psprintf("tuple data should begin at byte %u, but actually begins at byte %u (%u attributes, has nulls)", expected_hoff, ctx->tuphdr->t_hoff, ctx->natts)); diff --git a/contrib/ltree/ltree_io.c b/contrib/ltree/ltree_io.c index 15115cb29f..b75f35d5b5 100644 --- a/contrib/ltree/ltree_io.c +++ b/contrib/ltree/ltree_io.c @@ -661,17 +661,17 @@ deparse_lquery(const lquery *in) } memcpy(ptr, curtlevel->name, curtlevel->len); ptr += curtlevel->len; - if ((curtlevel->flag & LVAR_SUBLEXEME)) + if (curtlevel->flag & LVAR_SUBLEXEME) { *ptr = '%'; ptr++; } - if ((curtlevel->flag & LVAR_INCASE)) + if (curtlevel->flag & LVAR_INCASE) { *ptr = '@'; ptr++; } - if ((curtlevel->flag & LVAR_ANYEND)) + if (curtlevel->flag & LVAR_ANYEND) { *ptr = '*'; ptr++; diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 387f80419a..1ba9dbf966 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -2417,7 +2417,7 @@ PrepareTransaction(void) * cases, such as a temp table created and dropped all within the * transaction. That seems to require much more bookkeeping though. */ - if ((MyXactFlags & XACT_FLAGS_ACCESSEDTEMPNAMESPACE)) + if (MyXactFlags & XACT_FLAGS_ACCESSEDTEMPNAMESPACE) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot PREPARE a transaction that has operated on temporary objects"))); @@ -5530,7 +5530,7 @@ XactLogCommitRecord(TimestampTz commit_time, xl_xinfo.xinfo |= XACT_COMPLETION_UPDATE_RELCACHE_FILE; if (forceSyncCommit) xl_xinfo.xinfo |= XACT_COMPLETION_FORCE_SYNC_COMMIT; - if ((xactflags & XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK)) + if (xactflags & XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK) xl_xinfo.xinfo |= XACT_XINFO_HAS_AE_LOCKS; /* @@ -5681,7 +5681,7 @@ XactLogAbortRecord(TimestampTz abort_time, xlrec.xact_time = abort_time; - if ((xactflags & XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK)) + if (xactflags & XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK) xl_xinfo.xinfo |= XACT_XINFO_HAS_AE_LOCKS; if (nsubxacts > 0) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index dbee6ae199..e018cdfd9e 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -16309,7 +16309,7 @@ PreCommit_on_commit_actions(void) * relations, we can skip truncating ON COMMIT DELETE ROWS * tables, as they must still be empty. */ - if ((MyXactFlags & XACT_FLAGS_ACCESSEDTEMPNAMESPACE)) + if (MyXactFlags & XACT_FLAGS_ACCESSEDTEMPNAMESPACE) oids_to_truncate = lappend_oid(oids_to_truncate, oc->relid); break; case ONCOMMIT_DROP: diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index ff3dcc7b18..ae3364dfdc 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -2390,7 +2390,7 @@ query_tree_walker(Query *query, * don't contain actual expressions. However they do contain OIDs which * may be needed by dependency walkers etc. */ - if ((flags & QTW_EXAMINE_SORTGROUP)) + if (flags & QTW_EXAMINE_SORTGROUP) { if (walker((Node *) query->groupClause, context)) return true; @@ -3328,7 +3328,7 @@ query_tree_mutator(Query *query, * may be of interest to some mutators. */ - if ((flags & QTW_EXAMINE_SORTGROUP)) + if (flags & QTW_EXAMINE_SORTGROUP) { MUTATE(query->groupClause, query->groupClause, List *); MUTATE(query->windowClause, query->windowClause, List *); diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index 2874dc0612..fc9a0d67c9 100644 --- a/src/backend/replication/logical/decode.c +++ b/src/backend/replication/logical/decode.c @@ -337,7 +337,7 @@ DecodeXactOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) ReorderBufferXidSetCatalogChanges(ctx->reorder, xid, buf->origptr); } - else if ((!ctx->fast_forward)) + else if (!ctx->fast_forward) ReorderBufferImmediateInvalidation(ctx->reorder, invals->nmsgs, invals->msgs); -- 2.17.0 --XaUbO9McV5wPQijU Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0002-Avoid-verbose-ternary-operator-with-expressions-whic.patch" From 04fbf1de8afee69c1ad843c0d030c678ae244bf1 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Fri, 7 May 2021 08:16:51 -0500 Subject: [PATCH 2/2] Avoid verbose ternary operator with expressions which are already boolean --- contrib/intarray/_int_tool.c | 2 +- contrib/ltree/ltree_gist.c | 2 +- contrib/sepgsql/selinux.c | 2 +- src/backend/access/gin/gindatapage.c | 2 +- src/backend/access/gin/ginutil.c | 2 +- src/backend/access/gist/gist.c | 2 +- src/backend/access/gist/gistsplit.c | 4 ++-- src/backend/access/hash/hash.c | 2 +- src/backend/access/hash/hashinsert.c | 2 +- src/backend/access/hash/hashovfl.c | 2 +- src/backend/access/hash/hashpage.c | 2 +- src/backend/access/heap/heapam_visibility.c | 2 +- src/backend/access/spgist/spgscan.c | 2 +- src/backend/executor/spi.c | 2 +- src/backend/jit/jit.c | 2 +- src/backend/optimizer/util/pathnode.c | 4 ++-- src/backend/statistics/mcv.c | 2 +- src/backend/storage/file/buffile.c | 2 +- src/backend/tsearch/ts_parse.c | 2 +- src/backend/utils/adt/bool.c | 2 +- src/backend/utils/adt/ruleutils.c | 4 ++-- src/backend/utils/adt/tsquery_gist.c | 2 +- src/backend/utils/adt/tsquery_util.c | 2 +- src/backend/utils/adt/xid8funcs.c | 2 +- src/backend/utils/fmgr/dfmgr.c | 2 +- 25 files changed, 28 insertions(+), 28 deletions(-) diff --git a/contrib/intarray/_int_tool.c b/contrib/intarray/_int_tool.c index 91690aff51..8ed4d63fc3 100644 --- a/contrib/intarray/_int_tool.c +++ b/contrib/intarray/_int_tool.c @@ -41,7 +41,7 @@ inner_int_contains(ArrayType *a, ArrayType *b) break; /* db[j] is not in da */ } - return (n == nb) ? true : false; + return (n == nb); } /* arguments are assumed sorted */ diff --git a/contrib/ltree/ltree_gist.c b/contrib/ltree/ltree_gist.c index 6cf181bc53..7c39ed4298 100644 --- a/contrib/ltree/ltree_gist.c +++ b/contrib/ltree/ltree_gist.c @@ -137,7 +137,7 @@ ltree_same(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); if (LTG_ISONENODE(a)) - *result = (ISEQ(LTG_NODE(a), LTG_NODE(b))) ? true : false; + *result = ISEQ(LTG_NODE(a), LTG_NODE(b)); else { int32 i; diff --git a/contrib/sepgsql/selinux.c b/contrib/sepgsql/selinux.c index f11968bcaa..6264d7273c 100644 --- a/contrib/sepgsql/selinux.c +++ b/contrib/sepgsql/selinux.c @@ -615,7 +615,7 @@ static int sepgsql_mode = SEPGSQL_MODE_INTERNAL; bool sepgsql_is_enabled(void) { - return (sepgsql_mode != SEPGSQL_MODE_DISABLED ? true : false); + return (sepgsql_mode != SEPGSQL_MODE_DISABLED); } /* diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c index 06c0586543..fbccf3d038 100644 --- a/src/backend/access/gin/gindatapage.c +++ b/src/backend/access/gin/gindatapage.c @@ -241,7 +241,7 @@ dataIsMoveRight(GinBtree btree, Page page) if (GinPageIsDeleted(page)) return true; - return (ginCompareItemPointers(&btree->itemptr, iptr) > 0) ? true : false; + return (ginCompareItemPointers(&btree->itemptr, iptr) > 0); } /* diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c index cdd626ff0a..6d2d71be32 100644 --- a/src/backend/access/gin/ginutil.c +++ b/src/backend/access/gin/ginutil.c @@ -100,7 +100,7 @@ initGinState(GinState *state, Relation index) MemSet(state, 0, sizeof(GinState)); state->index = index; - state->oneCol = (origTupdesc->natts == 1) ? true : false; + state->oneCol = (origTupdesc->natts == 1); state->origTupdesc = origTupdesc; for (i = 0; i < origTupdesc->natts; i++) diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index 0683f42c25..a83a2e9952 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -231,7 +231,7 @@ gistplacetopage(Relation rel, Size freespace, GISTSTATE *giststate, { BlockNumber blkno = BufferGetBlockNumber(buffer); Page page = BufferGetPage(buffer); - bool is_leaf = (GistPageIsLeaf(page)) ? true : false; + bool is_leaf = GistPageIsLeaf(page); XLogRecPtr recptr; int i; bool is_split; diff --git a/src/backend/access/gist/gistsplit.c b/src/backend/access/gist/gistsplit.c index 526ed1218e..853ebc387b 100644 --- a/src/backend/access/gist/gistsplit.c +++ b/src/backend/access/gist/gistsplit.c @@ -303,9 +303,9 @@ supportSecondarySplit(Relation r, GISTSTATE *giststate, int attno, penalty2 = gistpenalty(giststate, attno, entry1, false, &entrySR, false); if (penalty1 < penalty2) - leaveOnLeft = (sv->spl_ldatum_exists) ? true : false; + leaveOnLeft = sv->spl_ldatum_exists; else - leaveOnLeft = (sv->spl_rdatum_exists) ? true : false; + leaveOnLeft = sv->spl_rdatum_exists; } if (leaveOnLeft == false) diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c index 0752fb38a9..eb3810494f 100644 --- a/src/backend/access/hash/hash.c +++ b/src/backend/access/hash/hash.c @@ -816,7 +816,7 @@ hashbucketcleanup(Relation rel, Bucket cur_bucket, Buffer bucket_buf, XLogRecPtr recptr; xlrec.clear_dead_marking = clear_dead_marking; - xlrec.is_primary_bucket_page = (buf == bucket_buf) ? true : false; + xlrec.is_primary_bucket_page = (buf == bucket_buf); XLogBeginInsert(); XLogRegisterData((char *) &xlrec, SizeOfHashDelete); diff --git a/src/backend/access/hash/hashinsert.c b/src/backend/access/hash/hashinsert.c index d254a00b6a..fe9f0df20b 100644 --- a/src/backend/access/hash/hashinsert.c +++ b/src/backend/access/hash/hashinsert.c @@ -176,7 +176,7 @@ restart_insert: LockBuffer(buf, BUFFER_LOCK_UNLOCK); /* chain to a new overflow page */ - buf = _hash_addovflpage(rel, metabuf, buf, (buf == bucket_buf) ? true : false); + buf = _hash_addovflpage(rel, metabuf, buf, (buf == bucket_buf)); page = BufferGetPage(buf); /* should fit now, given test above */ diff --git a/src/backend/access/hash/hashovfl.c b/src/backend/access/hash/hashovfl.c index 404f2b6221..b312af57e1 100644 --- a/src/backend/access/hash/hashovfl.c +++ b/src/backend/access/hash/hashovfl.c @@ -953,7 +953,7 @@ readpage: xl_hash_move_page_contents xlrec; xlrec.ntups = nitups; - xlrec.is_prim_bucket_same_wrt = (wbuf == bucket_buf) ? true : false; + xlrec.is_prim_bucket_same_wrt = (wbuf == bucket_buf); XLogBeginInsert(); XLogRegisterData((char *) &xlrec, SizeOfHashMovePageContents); diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c index b730025356..159646c7c3 100644 --- a/src/backend/access/hash/hashpage.c +++ b/src/backend/access/hash/hashpage.c @@ -1195,7 +1195,7 @@ _hash_splitbucket(Relation rel, all_tups_size = 0; /* chain to a new overflow page */ - nbuf = _hash_addovflpage(rel, metabuf, nbuf, (nbuf == bucket_nbuf) ? true : false); + nbuf = _hash_addovflpage(rel, metabuf, nbuf, (nbuf == bucket_nbuf)); npage = BufferGetPage(nbuf); nopaque = (HashPageOpaque) PageGetSpecialPointer(npage); } diff --git a/src/backend/access/heap/heapam_visibility.c b/src/backend/access/heap/heapam_visibility.c index d3c57cd16a..b72b03ea25 100644 --- a/src/backend/access/heap/heapam_visibility.c +++ b/src/backend/access/heap/heapam_visibility.c @@ -1475,7 +1475,7 @@ HeapTupleIsSurelyDead(HeapTuple htup, GlobalVisState *vistest) * all relevant hint bits were just set moments ago). */ if (!HeapTupleHeaderXminCommitted(tuple)) - return HeapTupleHeaderXminInvalid(tuple) ? true : false; + return HeapTupleHeaderXminInvalid(tuple); /* * If the inserting transaction committed, but any deleting transaction diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c index 401a1a8343..3fdcb40a88 100644 --- a/src/backend/access/spgist/spgscan.c +++ b/src/backend/access/spgist/spgscan.c @@ -864,7 +864,7 @@ redirect: page = BufferGetPage(buffer); TestForOldSnapshot(snapshot, index, page); - isnull = SpGistPageStoresNulls(page) ? true : false; + isnull = SpGistPageStoresNulls(page); if (SpGistPageIsLeaf(page)) { diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index a8d7fe6dab..a5aec7ba7d 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -1037,7 +1037,7 @@ SPI_modifytuple(Relation rel, HeapTuple tuple, int natts, int *attnum, if (attnum[i] <= 0 || attnum[i] > numberOfAttributes) break; v[attnum[i] - 1] = Values[i]; - n[attnum[i] - 1] = (Nulls && Nulls[i] == 'n') ? true : false; + n[attnum[i] - 1] = (Nulls && Nulls[i] == 'n'); } if (i == natts) /* no errors in *attnum */ diff --git a/src/backend/jit/jit.c b/src/backend/jit/jit.c index 2da300e000..91b8ae6c51 100644 --- a/src/backend/jit/jit.c +++ b/src/backend/jit/jit.c @@ -198,7 +198,7 @@ file_exists(const char *name) AssertArg(name != NULL); if (stat(name, &st) == 0) - return S_ISDIR(st.st_mode) ? false : true; + return !S_ISDIR(st.st_mode); else if (!(errno == ENOENT || errno == ENOTDIR)) ereport(ERROR, (errcode_for_file_access(), diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index a53850b370..81d9f25a46 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -936,7 +936,7 @@ create_seqscan_path(PlannerInfo *root, RelOptInfo *rel, pathnode->pathtarget = rel->reltarget; pathnode->param_info = get_baserel_parampathinfo(root, rel, required_outer); - pathnode->parallel_aware = parallel_workers > 0 ? true : false; + pathnode->parallel_aware = parallel_workers > 0; pathnode->parallel_safe = rel->consider_parallel; pathnode->parallel_workers = parallel_workers; pathnode->pathkeys = NIL; /* seqscan has unordered result */ @@ -1057,7 +1057,7 @@ create_bitmap_heap_path(PlannerInfo *root, pathnode->path.pathtarget = rel->reltarget; pathnode->path.param_info = get_baserel_parampathinfo(root, rel, required_outer); - pathnode->path.parallel_aware = parallel_degree > 0 ? true : false; + pathnode->path.parallel_aware = parallel_degree > 0; pathnode->path.parallel_safe = rel->consider_parallel; pathnode->path.parallel_workers = parallel_degree; pathnode->path.pathkeys = NIL; /* always unordered */ diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c index ef118952c7..35b39ece07 100644 --- a/src/backend/statistics/mcv.c +++ b/src/backend/statistics/mcv.c @@ -1772,7 +1772,7 @@ mcv_get_match_bitmap(PlannerInfo *root, List *clauses, for (i = 0; i < mcvlist->nitems; i++) { int j; - bool match = (expr->useOr ? false : true); + bool match = !expr->useOr; MCVItem *item = &mcvlist->items[i]; /* diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c index ff3aa67cde..b673150dbe 100644 --- a/src/backend/storage/file/buffile.c +++ b/src/backend/storage/file/buffile.c @@ -336,7 +336,7 @@ BufFileOpenFileSet(FileSet *fileset, const char *name, int mode, file = makeBufFileCommon(nfiles); file->files = files; - file->readOnly = (mode == O_RDONLY) ? true : false; + file->readOnly = (mode == O_RDONLY); file->fileset = fileset; file->name = pstrdup(name); diff --git a/src/backend/tsearch/ts_parse.c b/src/backend/tsearch/ts_parse.c index d978c8850d..3ae0044dfb 100644 --- a/src/backend/tsearch/ts_parse.c +++ b/src/backend/tsearch/ts_parse.c @@ -288,7 +288,7 @@ LexizeExec(LexizeData *ld, ParsedLex **correspondLexem) } } - ld->dictState.isend = (curVal->type == 0) ? true : false; + ld->dictState.isend = (curVal->type == 0); ld->dictState.getnext = false; res = (TSLexeme *) DatumGetPointer(FunctionCall4(&(dict->lexize), diff --git a/src/backend/utils/adt/bool.c b/src/backend/utils/adt/bool.c index fe11d1ae94..cd98f84270 100644 --- a/src/backend/utils/adt/bool.c +++ b/src/backend/utils/adt/bool.c @@ -184,7 +184,7 @@ boolrecv(PG_FUNCTION_ARGS) int ext; ext = pq_getmsgbyte(buf); - PG_RETURN_BOOL((ext != 0) ? true : false); + PG_RETURN_BOOL(ext != 0); } /* diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 8ff4e5dc07..1fb0b7b098 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -8005,14 +8005,14 @@ isSimpleNode(Node *node, Node *parentNode, int prettyFlags) * appears simple since . has top precedence, unless parent is * T_FieldSelect itself! */ - return (IsA(parentNode, FieldSelect) ? false : true); + return !IsA(parentNode, FieldSelect); case T_FieldStore: /* * treat like FieldSelect (probably doesn't matter) */ - return (IsA(parentNode, FieldStore) ? false : true); + return !IsA(parentNode, FieldStore); case T_CoerceToDomain: /* maybe simple, check args */ diff --git a/src/backend/utils/adt/tsquery_gist.c b/src/backend/utils/adt/tsquery_gist.c index 14d7343afa..906a686914 100644 --- a/src/backend/utils/adt/tsquery_gist.c +++ b/src/backend/utils/adt/tsquery_gist.c @@ -109,7 +109,7 @@ gtsquery_same(PG_FUNCTION_ARGS) TSQuerySign b = PG_GETARG_TSQUERYSIGN(1); bool *result = (bool *) PG_GETARG_POINTER(2); - *result = (a == b) ? true : false; + *result = (a == b); PG_RETURN_POINTER(result); } diff --git a/src/backend/utils/adt/tsquery_util.c b/src/backend/utils/adt/tsquery_util.c index 7f936427b5..b3dd4f4be0 100644 --- a/src/backend/utils/adt/tsquery_util.c +++ b/src/backend/utils/adt/tsquery_util.c @@ -186,7 +186,7 @@ QTNEq(QTNode *a, QTNode *b) if (!(sign == a->sign && sign == b->sign)) return false; - return (QTNodeCompare(a, b) == 0) ? true : false; + return (QTNodeCompare(a, b) == 0); } /* diff --git a/src/backend/utils/adt/xid8funcs.c b/src/backend/utils/adt/xid8funcs.c index cc2b4ac797..6c6786bc39 100644 --- a/src/backend/utils/adt/xid8funcs.c +++ b/src/backend/utils/adt/xid8funcs.c @@ -221,7 +221,7 @@ is_visible_fxid(FullTransactionId value, const pg_snapshot *snap) res = bsearch(&value, snap->xip, snap->nxip, sizeof(FullTransactionId), cmp_fxid); /* if found, transaction is still in progress */ - return (res) ? false : true; + return !res; } #endif else diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c index e8c6cdde97..96fd9d2268 100644 --- a/src/backend/utils/fmgr/dfmgr.c +++ b/src/backend/utils/fmgr/dfmgr.c @@ -458,7 +458,7 @@ file_exists(const char *name) AssertArg(name != NULL); if (stat(name, &st) == 0) - return S_ISDIR(st.st_mode) ? false : true; + return !S_ISDIR(st.st_mode); else if (!(errno == ENOENT || errno == ENOTDIR || errno == EACCES)) ereport(ERROR, (errcode_for_file_access(), -- 2.17.0 --XaUbO9McV5wPQijU--