From d527fda6216780281b90f48820ae978c61c7905c Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 12 Apr 2019 10:16:49 +0900 Subject: [PATCH] Fix more strcmp() calls using boolean-like comparisons for result checks Such calls can confuse the reader as strcmp() uses an integer as result. The places patched here have been spotted by Thomas Munro, David Rowley and myself. Author: Michael Paquier Reviewed-by: David Rowley Discussion: https://postgr.es/m/20190411021946.GG2728@paquier.xyz --- contrib/spi/refint.c | 9 ++++++--- src/backend/commands/lockcmds.c | 3 ++- src/backend/tsearch/spell.c | 8 ++++---- src/test/modules/test_rls_hooks/test_rls_hooks.c | 8 ++++---- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/contrib/spi/refint.c b/contrib/spi/refint.c index f90f2bce0ea..adf0490f853 100644 --- a/contrib/spi/refint.c +++ b/contrib/spi/refint.c @@ -473,9 +473,12 @@ check_foreign_key(PG_FUNCTION_ARGS) nv = SPI_getvalue(newtuple, tupdesc, fn); type = SPI_gettype(tupdesc, fn); - if ((strcmp(type, "text") && strcmp(type, "varchar") && - strcmp(type, "char") && strcmp(type, "bpchar") && - strcmp(type, "date") && strcmp(type, "timestamp")) == 0) + if (strcmp(type, "text") == 0 || + strcmp(type, "varchar") == 0 || + strcmp(type, "char") == 0 || + strcmp(type, "bpchar") == 0 || + strcmp(type, "date") == 0 || + strcmp(type, "timestamp") == 0) is_char_type = 1; #ifdef DEBUG_QUERY elog(DEBUG4, "check_foreign_key Debug value %s type %s %d", diff --git a/src/backend/commands/lockcmds.c b/src/backend/commands/lockcmds.c index df681e32341..97cf0bc4add 100644 --- a/src/backend/commands/lockcmds.c +++ b/src/backend/commands/lockcmds.c @@ -219,7 +219,8 @@ LockViewRecurse_walker(Node *node, LockViewRecurse_context *context) * skipped. */ if (relid == context->viewoid && - (!strcmp(rte->eref->aliasname, "old") || !strcmp(rte->eref->aliasname, "new"))) + (strcmp(rte->eref->aliasname, "old") == 0 || + strcmp(rte->eref->aliasname, "new") == 0)) continue; /* Currently, we only allow plain tables or views to be locked. */ diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c index eb39466b228..c715f06b8e2 100644 --- a/src/backend/tsearch/spell.c +++ b/src/backend/tsearch/spell.c @@ -1749,8 +1749,8 @@ NISortDictionary(IspellDict *Conf) naffix = 0; for (i = 0; i < Conf->nspell; i++) { - if (i == 0 - || strcmp(Conf->Spell[i]->p.flag, Conf->Spell[i - 1]->p.flag)) + if (i == 0 || + strcmp(Conf->Spell[i]->p.flag, Conf->Spell[i - 1]->p.flag) != 0) naffix++; } @@ -1764,8 +1764,8 @@ NISortDictionary(IspellDict *Conf) curaffix = -1; for (i = 0; i < Conf->nspell; i++) { - if (i == 0 - || strcmp(Conf->Spell[i]->p.flag, Conf->AffixData[curaffix])) + if (i == 0 || + strcmp(Conf->Spell[i]->p.flag, Conf->AffixData[curaffix]) != 0) { curaffix++; Assert(curaffix < naffix); diff --git a/src/test/modules/test_rls_hooks/test_rls_hooks.c b/src/test/modules/test_rls_hooks/test_rls_hooks.c index 8bf8f764ac3..10379bc59c0 100644 --- a/src/test/modules/test_rls_hooks/test_rls_hooks.c +++ b/src/test/modules/test_rls_hooks/test_rls_hooks.c @@ -75,8 +75,8 @@ test_rls_hooks_permissive(CmdType cmdtype, Relation relation) ParseState *qual_pstate; RangeTblEntry *rte; - if (strcmp(RelationGetRelationName(relation), "rls_test_permissive") - && strcmp(RelationGetRelationName(relation), "rls_test_both")) + if (strcmp(RelationGetRelationName(relation), "rls_test_permissive") != 0 && + strcmp(RelationGetRelationName(relation), "rls_test_both") != 0) return NIL; qual_pstate = make_parsestate(NULL); @@ -140,8 +140,8 @@ test_rls_hooks_restrictive(CmdType cmdtype, Relation relation) RangeTblEntry *rte; - if (strcmp(RelationGetRelationName(relation), "rls_test_restrictive") - && strcmp(RelationGetRelationName(relation), "rls_test_both")) + if (strcmp(RelationGetRelationName(relation), "rls_test_restrictive") != 0 && + strcmp(RelationGetRelationName(relation), "rls_test_both") != 0) return NIL; qual_pstate = make_parsestate(NULL);