pg.ddx.io pgsql-hackers@postgresql.org mailing list archive
help / color / mirror / Atom feed From: Justin Pryzby <pryzby@telsasoft.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Smith <smithpb2250@gmail.com>
Cc: Bruce Momjian <bruce@momjian.us>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: strange case of "if ((a & b))"
Date: Sun, 5 Sep 2021 19:11:10 -0500
Message-ID: <20210906001110.GF26465@telsasoft.com> (raw )
In-Reply-To: <1673521.1629342537@sss.pgh.pa.us >
References: <20210428182936.GE27406@telsasoft.com >
<2896014.1619635209@sss.pgh.pa.us >
<20210625023110.GI29179@telsasoft.com >
<20210818180222.GE13002@momjian.us >
<20210818182856.GR10479@telsasoft.com >
<CAHut+Ps6Y9ZeAXfUntci0NX6tBqNu+Rj1hy8BsuqXPLrXeUvFQ@mail.gmail.com >
<1673521.1629342537@sss.pgh.pa.us >
On Wed, Aug 18, 2021 at 11:08:57PM -0400, Tom Lane wrote:
> Peter Smith <smithpb2250@gmail.com> writes:
> > On Thu, Aug 19, 2021 at 4:29 AM Justin Pryzby <pryzby@telsasoft.com> 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
Attachments: download all (2 files, .tar.gz)
0001-Avoid-double-parens.patch (text/x-diff, 5.6K) download
From 51dab66eb3cbeccfa5bad0f1b8a26b94523edb65 Mon Sep 17 00:00:00 2001
From: Justin Pryzby <pryzbyj@telsasoft.com>
Date: Wed, 28 Apr 2021 14:12:49 -0500
Subject: [PATCH 1/2] Avoid double parens
git grep -l '\<if (([^(]*))' '*.c'
---
contrib/amcheck/verify_heapam.c | 6 +++---
contrib/ltree/ltree_io.c | 6 +++---
src/backend/access/transam/xact.c | 6 +++---
src/backend/commands/tablecmds.c | 2 +-
src/backend/nodes/nodeFuncs.c | 4 ++--
src/backend/replication/logical/decode.c | 2 +-
6 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/contrib/amcheck/verify_heapam.c b/contrib/amcheck/verify_heapam.c
index 173f99d787..0ac52b6ba2 100644
--- a/contrib/amcheck/verify_heapam.c
+++ b/contrib/amcheck/verify_heapam.c
@@ -406,13 +406,13 @@ verify_heapam(PG_FUNCTION_ARGS)
&vmbuffer);
if (skip_option == SKIP_PAGES_ALL_FROZEN)
{
- if ((mapbits & VISIBILITYMAP_ALL_FROZEN) != 0)
+ if (mapbits & VISIBILITYMAP_ALL_FROZEN)
continue;
}
if (skip_option == SKIP_PAGES_ALL_VISIBLE)
{
- if ((mapbits & VISIBILITYMAP_ALL_VISIBLE) != 0)
+ if (mapbits & VISIBILITYMAP_ALL_VISIBLE)
continue;
}
}
@@ -690,7 +690,7 @@ check_tuple_header(HeapCheckContext *ctx)
report_corruption(ctx,
psprintf("tuple data should begin at byte %u, but actually begins at byte %u (1 attribute, has nulls)",
expected_hoff, ctx->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
0002-Avoid-verbose-ternary-operator-with-expressions-whic.patch (text/x-diff, 14.5K) download
From 04fbf1de8afee69c1ad843c0d030c678ae244bf1 Mon Sep 17 00:00:00 2001
From: Justin Pryzby <pryzbyj@telsasoft.com>
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
view thread (27+ messages) latest in thread
Message-ID: <20210906001110.GF26465@telsasoft.com>
Permalink: ../20210906001110.GF26465@telsasoft.com/
Also on: postgresql.org/message-id/20210906001110.GF26465@telsasoft.com
copy link · copy postgr.es · copy git am
reply Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: pryzby@telsasoft.com, tgl@sss.pgh.pa.us, smithpb2250@gmail.com, bruce@momjian.us, pgsql-hackers@lists.postgresql.org
Subject: Re: strange case of "if ((a & b))"
In-Reply-To: <20210906001110.GF26465@telsasoft.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox