On Thu, Aug 18, 2022 at 09:39:02AM +0900, Michael Paquier wrote: > On Thu, Aug 18, 2022 at 08:49:14AM +1000, Peter Smith wrote: > > I'd started looking at these [1] last year and spent a day trying to > > categorise them all in a spreadsheet (shadows a global, shadows a > > parameter, shadows a local var etc) but I became swamped by the > > volume, and then other work/life got in the way. > > > > +1 from me. > > A lot of the changes proposed here update the code so as the same > variable gets used across more code paths by removing declarations, > but we have two variables defined because both are aimed to be used in > a different context (see AttachPartitionEnsureIndexes() in tablecmds.c > for example).
> Wouldn't it be a saner approach in a lot of cases to rename the > shadowed variables (aka the ones getting removed in your patches) and > keep them local to the code paths where we use them? The cases where I removed a declaration are ones where the variable either hasn't yet been assigned in the outer scope (so it's safe to use first in the inner scope, since its value is later overwriten in the outer scope). Or it's no longer used in the outer scope, so it's safe to re-use it in the inner scope (as in AttachPartitionEnsureIndexes). Since you think it's saner, I changed to rename them. In the case of "first", the var is used in two independent loops, the same way, and re-initialized. In the case of found_whole_row, the var is ignored, as the comments say, so it would be silly to declare more vars to be additionally ignored. -- Justin PS. I hadn't sent the other patches which rename the variables, having assumed that the discussion would be bikeshedded to death and derail without having fixed the lowest hanging fruits. I'm attaching them those now to see what happens.
>From 97768e5a439bef016e6ebd5221ed148f076c6e3f Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:38:57 -0500 Subject: [PATCH 01/26] avoid shadow vars: pg_dump.c: i_oid backpatch to v15 commit d498e052b4b84ae21b3b68d5b3fda6ead65d1d4d Author: Robert Haas <rh...@postgresql.org> Date: Fri Jul 8 10:15:19 2022 -0400 Preserve relfilenode of pg_largeobject and its index across pg_upgrade. --- src/bin/pg_dump/pg_dump.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index da6605175a0..322947c5609 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -3144,7 +3144,6 @@ dumpDatabase(Archive *fout) PQExpBuffer loHorizonQry = createPQExpBuffer(); int i_relfrozenxid, i_relfilenode, - i_oid, i_relminmxid; /* -- 2.17.1
>From ce729535c47d72db775ebcf1f185799c78615148 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 15:55:13 -0500 Subject: [PATCH 02/26] avoid shadow vars: pg_dump.c: tbinfo backpatch to v15 commit 9895961529ef8ff3fc12b39229f9a93e08bca7b7 Author: Tom Lane <t...@sss.pgh.pa.us> Date: Mon Dec 6 13:07:31 2021 -0500 Avoid per-object queries in performance-critical paths in pg_dump. --- src/bin/pg_dump/pg_dump.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 322947c5609..5c196d66985 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -7080,21 +7080,21 @@ getConstraints(Archive *fout, TableInfo tblinfo[], int numTables) appendPQExpBufferChar(tbloids, '{'); for (int i = 0; i < numTables; i++) { - TableInfo *tbinfo = &tblinfo[i]; + TableInfo *mytbinfo = &tblinfo[i]; /* * For partitioned tables, foreign keys have no triggers so they must * be included anyway in case some foreign keys are defined. */ - if ((!tbinfo->hastriggers && - tbinfo->relkind != RELKIND_PARTITIONED_TABLE) || - !(tbinfo->dobj.dump & DUMP_COMPONENT_DEFINITION)) + if ((!mytbinfo->hastriggers && + mytbinfo->relkind != RELKIND_PARTITIONED_TABLE) || + !(mytbinfo->dobj.dump & DUMP_COMPONENT_DEFINITION)) continue; /* OK, we need info for this table */ if (tbloids->len > 1) /* do we have more than the '{'? */ appendPQExpBufferChar(tbloids, ','); - appendPQExpBuffer(tbloids, "%u", tbinfo->dobj.catId.oid); + appendPQExpBuffer(tbloids, "%u", mytbinfo->dobj.catId.oid); } appendPQExpBufferChar(tbloids, '}'); -- 2.17.1
>From 478fa745d4ddc38fe15f54d7d396ebf7a106772b Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 16:22:52 -0500 Subject: [PATCH 03/26] avoid shadow vars: pg_dump.c: owning_tab backpatch to v15 commit 344d62fb9a978a72cf8347f0369b9ee643fd0b31 Author: Peter Eisentraut <pe...@eisentraut.org> Date: Thu Apr 7 16:13:23 2022 +0200 Unlogged sequences --- src/bin/pg_dump/pg_dump.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 5c196d66985..4b5d8df1e4e 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -16799,21 +16799,21 @@ dumpSequence(Archive *fout, const TableInfo *tbinfo) */ if (OidIsValid(tbinfo->owning_tab) && !tbinfo->is_identity_sequence) { - TableInfo *owning_tab = findTableByOid(tbinfo->owning_tab); + TableInfo *this_owning_tab = findTableByOid(tbinfo->owning_tab); - if (owning_tab == NULL) + if (this_owning_tab == NULL) pg_fatal("failed sanity check, parent table with OID %u of sequence with OID %u not found", tbinfo->owning_tab, tbinfo->dobj.catId.oid); - if (owning_tab->dobj.dump & DUMP_COMPONENT_DEFINITION) + if (this_owning_tab->dobj.dump & DUMP_COMPONENT_DEFINITION) { resetPQExpBuffer(query); appendPQExpBuffer(query, "ALTER SEQUENCE %s", fmtQualifiedDumpable(tbinfo)); appendPQExpBuffer(query, " OWNED BY %s", - fmtQualifiedDumpable(owning_tab)); + fmtQualifiedDumpable(this_owning_tab)); appendPQExpBuffer(query, ".%s;\n", - fmtId(owning_tab->attnames[tbinfo->owning_col - 1])); + fmtId(this_owning_tab->attnames[tbinfo->owning_col - 1])); if (tbinfo->dobj.dump & DUMP_COMPONENT_DEFINITION) ArchiveEntry(fout, nilCatalogId, createDumpId(), -- 2.17.1
>From f67d6fe9b9bca6334f596478fb0317025ae51226 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Wed, 17 Aug 2022 08:52:03 -0500 Subject: [PATCH 04/26] avoid shadow vars: tablesync.c: first backpatch to v15 commit 923def9a533a7d986acfb524139d8b9e5466d0a5 Author: Tomas Vondra <tomas.von...@postgresql.org> Date: Sat Mar 26 00:45:21 2022 +0100 Allow specifying column lists for logical replication --- src/backend/replication/logical/tablesync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index bfcb80b4955..71b503f4217 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -762,8 +762,8 @@ fetch_remote_table_info(char *nspname, char *relname, TupleTableSlot *slot; Oid attrsRow[] = {INT2VECTOROID}; StringInfoData pub_names; - bool first = true; + first = true; initStringInfo(&pub_names); foreach(lc, MySubscription->publications) { -- 2.17.1
>From 51c4c49e81c802d74e348222df66fcff3b841814 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:01:16 -0500 Subject: [PATCH 05/26] avoid shadow vars: tablesync.c: slot backpatch to v15 commit 923def9a533a7d986acfb524139d8b9e5466d0a5 Author: Tomas Vondra <tomas.von...@postgresql.org> Date: Sat Mar 26 00:45:21 2022 +0100 Allow specifying column lists for logical replication --- src/backend/replication/logical/tablesync.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index 71b503f4217..cfc47dc8df0 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -759,7 +759,7 @@ fetch_remote_table_info(char *nspname, char *relname, if (walrcv_server_version(LogRepWorkerWalRcvConn) >= 150000) { WalRcvExecResult *pubres; - TupleTableSlot *slot; + TupleTableSlot *thisslot; Oid attrsRow[] = {INT2VECTOROID}; StringInfoData pub_names; @@ -819,10 +819,10 @@ fetch_remote_table_info(char *nspname, char *relname, * If we find a NULL value, it means all the columns should be * replicated. */ - slot = MakeSingleTupleTableSlot(pubres->tupledesc, &TTSOpsMinimalTuple); - if (tuplestore_gettupleslot(pubres->tuplestore, true, false, slot)) + thisslot = MakeSingleTupleTableSlot(pubres->tupledesc, &TTSOpsMinimalTuple); + if (tuplestore_gettupleslot(pubres->tuplestore, true, false, thisslot)) { - Datum cfval = slot_getattr(slot, 1, &isnull); + Datum cfval = slot_getattr(thisslot, 1, &isnull); if (!isnull) { @@ -838,9 +838,9 @@ fetch_remote_table_info(char *nspname, char *relname, included_cols = bms_add_member(included_cols, elems[natt]); } - ExecClearTuple(slot); + ExecClearTuple(thisslot); } - ExecDropSingleTupleTableSlot(slot); + ExecDropSingleTupleTableSlot(thisslot); walrcv_clear_result(pubres); -- 2.17.1
>From ac32d509971319d8804b184d014730384a7c93ae Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 18:51:10 -0500 Subject: [PATCH 06/26] avoid shadow vars: basebackup_target.c: ttype backpatch to v15 commit e4ba69f3f4a1b997aa493cc02e563a91c0f35b87 Author: Robert Haas <rh...@postgresql.org> Date: Tue Mar 15 13:22:04 2022 -0400 Allow extensions to add new backup targets. --- src/backend/backup/basebackup_target.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/backup/basebackup_target.c b/src/backend/backup/basebackup_target.c index 83928e32055..1553568a37d 100644 --- a/src/backend/backup/basebackup_target.c +++ b/src/backend/backup/basebackup_target.c @@ -73,9 +73,9 @@ BaseBackupAddTarget(char *name, /* Search the target type list for an existing entry with this name. */ foreach(lc, BaseBackupTargetTypeList) { - BaseBackupTargetType *ttype = lfirst(lc); + BaseBackupTargetType *this_ttype = lfirst(lc); - if (strcmp(ttype->name, name) == 0) + if (strcmp(this_ttype->name, name) == 0) { /* * We found one, so update it. @@ -84,8 +84,8 @@ BaseBackupAddTarget(char *name, * the same name multiple times, but if it happens, this seems * like the sanest behavior. */ - ttype->check_detail = check_detail; - ttype->get_sink = get_sink; + this_ttype->check_detail = check_detail; + this_ttype->get_sink = get_sink; return; } } -- 2.17.1
>From 180081aac947f65bf87c22a9da68b9383e521cd4 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:45:28 -0500 Subject: [PATCH 07/26] avoid shadow vars: parse_jsontable.c: jtc backpatch to v15 commit fadb48b00e02ccfd152baa80942de30205ab3c4f Author: Andrew Dunstan <and...@dunslane.net> Date: Tue Apr 5 14:09:04 2022 -0400 PLAN clauses for JSON_TABLE --- src/backend/parser/parse_jsontable.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/parser/parse_jsontable.c b/src/backend/parser/parse_jsontable.c index bc3272017ef..84ff3fac140 100644 --- a/src/backend/parser/parse_jsontable.c +++ b/src/backend/parser/parse_jsontable.c @@ -341,13 +341,13 @@ transformJsonTableChildPlan(JsonTableContext *cxt, JsonTablePlan *plan, /* transform all nested columns into cross/union join */ foreach(lc, columns) { - JsonTableColumn *jtc = castNode(JsonTableColumn, lfirst(lc)); + JsonTableColumn *thisjtc = castNode(JsonTableColumn, lfirst(lc)); Node *node; - if (jtc->coltype != JTC_NESTED) + if (thisjtc->coltype != JTC_NESTED) continue; - node = transformNestedJsonTableColumn(cxt, jtc, plan); + node = transformNestedJsonTableColumn(cxt, thisjtc, plan); /* join transformed node with previous sibling nodes */ res = res ? makeJsonTableSiblingJoin(cross, res, node) : node; -- 2.17.1
>From 2fc3e45ae6c9d40de537577c75a32ec9e766ac76 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Wed, 17 Aug 2022 00:22:45 -0500 Subject: [PATCH 08/26] avoid shadow vars: res backpatch to v15 commit 1a36bc9dba8eae90963a586d37b6457b32b2fed4 Author: Andrew Dunstan <and...@dunslane.net> Date: Thu Mar 3 13:11:14 2022 -0500 SQL/JSON query functions --- src/backend/utils/adt/jsonpath_exec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/adt/jsonpath_exec.c b/src/backend/utils/adt/jsonpath_exec.c index 5b6a4805721..ff1ec607eb1 100644 --- a/src/backend/utils/adt/jsonpath_exec.c +++ b/src/backend/utils/adt/jsonpath_exec.c @@ -3109,10 +3109,10 @@ JsonItemFromDatum(Datum val, Oid typid, int32 typmod, JsonbValue *res) if (JsonContainerIsScalar(&jb->root)) { - bool res PG_USED_FOR_ASSERTS_ONLY; + bool tmp PG_USED_FOR_ASSERTS_ONLY; - res = JsonbExtractScalar(&jb->root, jbv); - Assert(res); + tmp = JsonbExtractScalar(&jb->root, jbv); + Assert(tmp); } else JsonbInitBinary(jbv, jb); -- 2.17.1
>From 058d0ccbb7553def2ee3cfdc36b18ac49bfe81f3 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:43:15 -0500 Subject: [PATCH 09/26] avoid shadow vars: clauses.c: querytree_list commit e717a9a18b2e34c9c40e5259ad4d31cd7e420750 Author: Peter Eisentraut <pe...@eisentraut.org> Date: Wed Apr 7 21:30:08 2021 +0200 SQL-standard function body --- src/backend/optimizer/util/clauses.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index 533df86ff77..cfccdd08b5a 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -4540,16 +4540,16 @@ inline_function(Oid funcid, Oid result_type, Oid result_collid, if (!isNull) { Node *n; - List *querytree_list; + List *this_querytree_list; n = stringToNode(TextDatumGetCString(tmp)); if (IsA(n, List)) - querytree_list = linitial_node(List, castNode(List, n)); + this_querytree_list = linitial_node(List, castNode(List, n)); else - querytree_list = list_make1(n); - if (list_length(querytree_list) != 1) + this_querytree_list = list_make1(n); + if (list_length(this_querytree_list) != 1) goto fail; - querytree = linitial(querytree_list); + querytree = linitial(this_querytree_list); /* * Because we'll insist below that the querytree have an empty rtable -- 2.17.1
>From dc97085ee1fe2a4a8146ceb99a2829667a55b6d8 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 20:28:02 -0500 Subject: [PATCH 10/26] avoid shadow vars: tablecmds.c: constraintOid commit eb7ed3f3063401496e4aa4bd68fa33f0be31a72f Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Mon Feb 19 16:59:37 2018 -0300 Allow UNIQUE indexes on partitioned tables --- src/backend/commands/tablecmds.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 8d7c68b8b3c..93b217ee14d 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -18098,14 +18098,14 @@ AttachPartitionEnsureIndexes(Relation rel, Relation attachrel) if (!found) { IndexStmt *stmt; - Oid constraintOid; + Oid this_conid; stmt = generateClonedIndexStmt(NULL, idxRel, attmap, - &constraintOid); + &this_conid); DefineIndex(RelationGetRelid(attachrel), stmt, InvalidOid, RelationGetRelid(idxRel), - constraintOid, + this_conid, true, false, false, false, false); } -- 2.17.1
>From 0ff0dad2688b130b91cf0d532e042338544266d6 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 20:17:46 -0500 Subject: [PATCH 11/26] avoid shadow vars: tablecmds.c: copyTuple commit 6f70d7ca1d1937a9f7b79eff6fb18ed1bb2a4c47 Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Wed May 5 12:14:21 2021 -0400 Have ALTER CONSTRAINT recurse on partitioned tables --- src/backend/commands/tablecmds.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 93b217ee14d..3403307c893 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -10865,7 +10865,7 @@ ATExecAlterConstrRecurse(Constraint *cmdcon, Relation conrel, Relation tgrel, { Form_pg_trigger tgform = (Form_pg_trigger) GETSTRUCT(tgtuple); Form_pg_trigger copy_tg; - HeapTuple copyTuple; + HeapTuple this_copyTuple; /* * Remember OIDs of other relation(s) involved in FK constraint. @@ -10889,16 +10889,16 @@ ATExecAlterConstrRecurse(Constraint *cmdcon, Relation conrel, Relation tgrel, tgform->tgfoid != F_RI_FKEY_CHECK_UPD) continue; - copyTuple = heap_copytuple(tgtuple); - copy_tg = (Form_pg_trigger) GETSTRUCT(copyTuple); + this_copyTuple = heap_copytuple(tgtuple); + copy_tg = (Form_pg_trigger) GETSTRUCT(this_copyTuple); copy_tg->tgdeferrable = cmdcon->deferrable; copy_tg->tginitdeferred = cmdcon->initdeferred; - CatalogTupleUpdate(tgrel, ©Tuple->t_self, copyTuple); + CatalogTupleUpdate(tgrel, &this_copyTuple->t_self, this_copyTuple); InvokeObjectPostAlterHook(TriggerRelationId, tgform->oid, 0); - heap_freetuple(copyTuple); + heap_freetuple(this_copyTuple); } systable_endscan(tgscan); -- 2.17.1
>From 8de2ba6b4b419280ccc6a6b4ea17e34d09458fbc Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 21:02:16 -0500 Subject: [PATCH 12/26] avoid shadow vars: heap.c: rel, tuple commit 0d692a0dc9f0e532c67c577187fe5d7d323cb95b Author: Robert Haas <rh...@postgresql.org> Date: Sat Jan 1 23:48:11 2011 -0500 Basic foreign table support. commit 258cef12540fa1cb244881a0f019cefd698c809e Author: Robert Haas <rh...@postgresql.org> Date: Tue Apr 11 09:08:36 2017 -0400 Fix possibile deadlock when dropping partitions. --- src/backend/catalog/heap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 9b03579e6e0..9a83ebf3231 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -1818,19 +1818,19 @@ heap_drop_with_catalog(Oid relid) */ if (rel->rd_rel->relkind == RELKIND_FOREIGN_TABLE) { - Relation rel; - HeapTuple tuple; + Relation pg_foreign_table; + HeapTuple foreigntuple; - rel = table_open(ForeignTableRelationId, RowExclusiveLock); + pg_foreign_table = table_open(ForeignTableRelationId, RowExclusiveLock); - tuple = SearchSysCache1(FOREIGNTABLEREL, ObjectIdGetDatum(relid)); - if (!HeapTupleIsValid(tuple)) + foreigntuple = SearchSysCache1(FOREIGNTABLEREL, ObjectIdGetDatum(relid)); + if (!HeapTupleIsValid(foreigntuple)) elog(ERROR, "cache lookup failed for foreign table %u", relid); - CatalogTupleDelete(rel, &tuple->t_self); + CatalogTupleDelete(pg_foreign_table, &foreigntuple->t_self); - ReleaseSysCache(tuple); - table_close(rel, RowExclusiveLock); + ReleaseSysCache(foreigntuple); + table_close(pg_foreign_table, RowExclusiveLock); } /* -- 2.17.1
>From d6d3eca1d77b40bb18328c0ecf78966d7abd27bb Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 16:55:10 -0500 Subject: [PATCH 13/26] avoid shadow vars: copyfrom.c: attnum commit 3a1433674696fbb968bc2120ebd36d9766f49af5 Author: Bruce Momjian <br...@momjian.us> Date: Thu Apr 15 22:36:03 2004 +0000 Modify COPY for() loop to use attnum as a variable name, not 'i'. --- src/backend/commands/copyfrom.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c index a976008b3d4..e8bb168aea8 100644 --- a/src/backend/commands/copyfrom.c +++ b/src/backend/commands/copyfrom.c @@ -1202,7 +1202,6 @@ BeginCopyFrom(ParseState *pstate, num_defaults; FmgrInfo *in_functions; Oid *typioparams; - int attnum; Oid in_func_oid; int *defmap; ExprState **defexprs; @@ -1401,7 +1400,7 @@ BeginCopyFrom(ParseState *pstate, defmap = (int *) palloc(num_phys_attrs * sizeof(int)); defexprs = (ExprState **) palloc(num_phys_attrs * sizeof(ExprState *)); - for (attnum = 1; attnum <= num_phys_attrs; attnum++) + for (int attnum = 1; attnum <= num_phys_attrs; attnum++) { Form_pg_attribute att = TupleDescAttr(tupDesc, attnum - 1); -- 2.17.1
>From a8d6f5b7831964a23c9b2a3fc1e0d0a4d71f74c3 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 18:36:13 -0500 Subject: [PATCH 14/26] avoid shadow vars: nodeAgg: transno commit db80acfc9d50ac56811d22802ab3d822ab313055 Author: Heikki Linnakangas <heikki.linnakan...@iki.fi> Date: Tue Dec 20 09:20:17 2016 +0200 Fix sharing Agg transition state of DISTINCT or ordered aggs. --- src/backend/executor/nodeAgg.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 96d200e4461..933c3049016 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -1296,13 +1296,12 @@ finalize_aggregates(AggState *aggstate, Datum *aggvalues = econtext->ecxt_aggvalues; bool *aggnulls = econtext->ecxt_aggnulls; int aggno; - int transno; /* * If there were any DISTINCT and/or ORDER BY aggregates, sort their * inputs and run the transition functions. */ - for (transno = 0; transno < aggstate->numtrans; transno++) + for (int transno = 0; transno < aggstate->numtrans; transno++) { AggStatePerTrans pertrans = &aggstate->pertrans[transno]; AggStatePerGroup pergroupstate; -- 2.17.1
>From 25e68782b1686f8e164174cc03be04deb1950920 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:36:12 -0500 Subject: [PATCH 15/26] avoid shadow vars: trigger.c: partitionId commit 80ba4bb383538a2ee846fece6a7b8da9518b6866 Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Thu Jul 22 18:33:47 2021 -0400 Make ALTER TRIGGER RENAME consistent for partitioned tables --- src/backend/commands/trigger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 62a09fb131b..bb4385c6ea9 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -1726,9 +1726,9 @@ renametrig_partition(Relation tgrel, Oid partitionId, Oid parentTriggerOid, for (int i = 0; i < partdesc->nparts; i++) { - Oid partitionId = partdesc->oids[i]; + Oid partid = partdesc->oids[i]; - renametrig_partition(tgrel, partitionId, tgform->oid, newname, + renametrig_partition(tgrel, partid, tgform->oid, newname, NameStr(tgform->tgname)); } } -- 2.17.1
>From 4a5814a70946496eba42f9ac43e9cafac314cc3e Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 20:20:38 -0500 Subject: [PATCH 16/26] avoid shadow vars: execPartition.c: found_whole_row commit 158b7bc6d77948d2f474dc9f2777c87f81d1365a Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Mon Apr 16 15:50:57 2018 -0300 Ignore whole-rows in INSERT/CONFLICT with partitioned tables See also: commit 555ee77a9668e3f1b03307055b5027e13bf1a715 Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Mon Mar 26 10:43:54 2018 -0300 Handle INSERT .. ON CONFLICT with partitioned tables --- src/backend/executor/execPartition.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backend/executor/execPartition.c b/src/backend/executor/execPartition.c index ac03271882f..901dd435efd 100644 --- a/src/backend/executor/execPartition.c +++ b/src/backend/executor/execPartition.c @@ -768,7 +768,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, { List *onconflset; List *onconflcols; - bool found_whole_row; /* * Translate expressions in onConflictSet to account for -- 2.17.1
>From 89289938e3b6aa46d4dcc387da841d1ba10b2787 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 17:10:55 -0500 Subject: [PATCH 17/26] avoid shadow vars: brin keyno commit a681e3c107aa97eb554f118935c4d2278892c3dd Author: Tomas Vondra <tomas.von...@postgresql.org> Date: Fri Mar 26 13:17:56 2021 +0100 Support the old signature of BRIN consistent function --- src/backend/access/brin/brin.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/access/brin/brin.c b/src/backend/access/brin/brin.c index e88f7efa7e4..69f21abfb59 100644 --- a/src/backend/access/brin/brin.c +++ b/src/backend/access/brin/brin.c @@ -372,7 +372,6 @@ bringetbitmap(IndexScanDesc scan, TIDBitmap *tbm) **nullkeys; int *nkeys, *nnullkeys; - int keyno; char *ptr; Size len; char *tmp PG_USED_FOR_ASSERTS_ONLY; @@ -454,7 +453,7 @@ bringetbitmap(IndexScanDesc scan, TIDBitmap *tbm) memset(nnullkeys, 0, sizeof(int) * bdesc->bd_tupdesc->natts); /* Preprocess the scan keys - split them into per-attribute arrays. */ - for (keyno = 0; keyno < scan->numberOfKeys; keyno++) + for (int keyno = 0; keyno < scan->numberOfKeys; keyno++) { ScanKey key = &scan->keyData[keyno]; AttrNumber keyattno = key->sk_attno; -- 2.17.1
>From 0ff18c1521f4057e2dc0affb7321ae1da747586b Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 23:52:21 -0500 Subject: [PATCH 18/26] avoid shadow vars: bufmgr.c: j commit bea449c635c0e68e21610593594c1e5d52842cdd Author: Amit Kapila <akap...@postgresql.org> Date: Wed Jan 13 07:46:11 2021 +0530 Optimize DropRelFileNodesAllBuffers() for recovery. --- src/backend/storage/buffer/bufmgr.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 9c1bd508d36..a748efdb942 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -3183,7 +3183,6 @@ void DropRelationsAllBuffers(SMgrRelation *smgr_reln, int nlocators) { int i; - int j; int n = 0; SMgrRelation *rels; BlockNumber (*block)[MAX_FORKNUM + 1]; @@ -3232,7 +3231,7 @@ DropRelationsAllBuffers(SMgrRelation *smgr_reln, int nlocators) */ for (i = 0; i < n && cached; i++) { - for (j = 0; j <= MAX_FORKNUM; j++) + for (int j = 0; j <= MAX_FORKNUM; j++) { /* Get the number of blocks for a relation's fork. */ block[i][j] = smgrnblocks_cached(rels[i], j); @@ -3259,7 +3258,7 @@ DropRelationsAllBuffers(SMgrRelation *smgr_reln, int nlocators) { for (i = 0; i < n; i++) { - for (j = 0; j <= MAX_FORKNUM; j++) + for (int j = 0; j <= MAX_FORKNUM; j++) { /* ignore relation forks that doesn't exist */ if (!BlockNumberIsValid(block[i][j])) -- 2.17.1
>From aeb44609d8734ac799bdb941addac0fb82f7e549 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Wed, 17 Aug 2022 08:49:46 -0500 Subject: [PATCH 19/26] avoid shadow vars: psql/command.c: host commit 87e0b7422d70ff4fb69612ef7ba3cbee6ed8d2ae Author: Robert Haas <rh...@postgresql.org> Date: Fri Jul 23 14:56:54 2010 +0000 Have psql avoid describing local sockets as host names. --- src/bin/psql/command.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index a81bd3307b4..09950cac60a 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -3551,27 +3551,27 @@ do_connect(enum trivalue reuse_previous_specification, param_is_newly_set(PQhost(o_conn), PQhost(pset.db)) || param_is_newly_set(PQport(o_conn), PQport(pset.db))) { - char *host = PQhost(pset.db); - char *hostaddr = PQhostaddr(pset.db); + char *dbhost = PQhost(pset.db); + char *dbhostaddr = PQhostaddr(pset.db); - if (is_unixsock_path(host)) + if (is_unixsock_path(dbhost)) { /* hostaddr overrides host */ - if (hostaddr && *hostaddr) + if (dbhostaddr && *dbhostaddr) printf(_("You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n"), - PQdb(pset.db), PQuser(pset.db), hostaddr, PQport(pset.db)); + PQdb(pset.db), PQuser(pset.db), dbhostaddr, PQport(pset.db)); else printf(_("You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n"), - PQdb(pset.db), PQuser(pset.db), host, PQport(pset.db)); + PQdb(pset.db), PQuser(pset.db), dbhost, PQport(pset.db)); } else { - if (hostaddr && *hostaddr && strcmp(host, hostaddr) != 0) + if (dbhostaddr && *dbhostaddr && strcmp(dbhost, dbhostaddr) != 0) printf(_("You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n"), - PQdb(pset.db), PQuser(pset.db), host, hostaddr, PQport(pset.db)); + PQdb(pset.db), PQuser(pset.db), dbhost, dbhostaddr, PQport(pset.db)); else printf(_("You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n"), - PQdb(pset.db), PQuser(pset.db), host, PQport(pset.db)); + PQdb(pset.db), PQuser(pset.db), dbhost, PQport(pset.db)); } } else -- 2.17.1
>From c0a638c97f05e493bf6fee86895d746db89bcbb1 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Wed, 17 Aug 2022 08:56:42 -0500 Subject: [PATCH 20/26] avoid shadow vars: ruleutils: dpns commit e717a9a18b2e34c9c40e5259ad4d31cd7e420750 Author: Peter Eisentraut <pe...@eisentraut.org> Date: Wed Apr 7 21:30:08 2021 +0200 SQL-standard function body --- src/backend/utils/adt/ruleutils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 8964f73b929..44a3b064cad 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -8112,9 +8112,9 @@ get_parameter(Param *param, deparse_context *context) */ foreach(lc, context->namespaces) { - deparse_namespace *dpns = lfirst(lc); + deparse_namespace *tmp = lfirst(lc); - if (dpns->rtable_names != NIL) + if (tmp->rtable_names != NIL) { should_qualify = true; break; -- 2.17.1
>From c95f78e6a9b0e29fe195fb1cad34309eb5f5a8b3 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 15:54:19 -0500 Subject: [PATCH 21/26] avoid shadow vars: costsize.c: subpath commit 959d00e9dbe4cfcf4a63bb655ac2c29a5e579246 Author: Tom Lane <t...@sss.pgh.pa.us> Date: Fri Apr 5 19:20:30 2019 -0400 Use Append rather than MergeAppend for scanning ordered partitions. --- src/backend/optimizer/path/costsize.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c index 1e94c5aa7c4..504b13da7be 100644 --- a/src/backend/optimizer/path/costsize.c +++ b/src/backend/optimizer/path/costsize.c @@ -2545,10 +2545,10 @@ cost_append(AppendPath *apath, PlannerInfo *root) /* Compute rows and costs as sums of subplan rows and costs. */ foreach(l, apath->subpaths) { - Path *subpath = (Path *) lfirst(l); + Path *sub = (Path *) lfirst(l); - apath->path.rows += subpath->rows; - apath->path.total_cost += subpath->total_cost; + apath->path.rows += sub->rows; + apath->path.total_cost += sub->total_cost; } } else -- 2.17.1
>From a9c0e3e1b79a961b3386e0cc489966fad820bbb1 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 15:59:47 -0500 Subject: [PATCH 22/26] avoid shadow vars: partitionfuncs.c: relid commit b96f6b19487fb9802216311b242c01c27c1938de Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Mon Mar 4 16:14:29 2019 -0300 pg_partition_ancestors --- src/backend/utils/adt/partitionfuncs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/adt/partitionfuncs.c b/src/backend/utils/adt/partitionfuncs.c index 109dc8023e1..59983381924 100644 --- a/src/backend/utils/adt/partitionfuncs.c +++ b/src/backend/utils/adt/partitionfuncs.c @@ -238,9 +238,9 @@ pg_partition_ancestors(PG_FUNCTION_ARGS) if (funcctx->call_cntr < list_length(ancestors)) { - Oid relid = list_nth_oid(ancestors, funcctx->call_cntr); + Oid thisrelid = list_nth_oid(ancestors, funcctx->call_cntr); - SRF_RETURN_NEXT(funcctx, ObjectIdGetDatum(relid)); + SRF_RETURN_NEXT(funcctx, ObjectIdGetDatum(thisrelid)); } SRF_RETURN_DONE(funcctx); -- 2.17.1
>From ab02a73d6d100100cd5a87073e5cdc3c9a0865d1 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:19:50 -0500 Subject: [PATCH 23/26] avoid shadow vars: rangetypes_gist.c: range commit 80da9e68fdd70b796b3a7de3821589513596c0f7 Author: Tom Lane <t...@sss.pgh.pa.us> Date: Sun Mar 4 22:50:06 2012 -0500 Rewrite GiST support code for rangetypes. --- src/backend/utils/adt/rangetypes_gist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/adt/rangetypes_gist.c b/src/backend/utils/adt/rangetypes_gist.c index fbf39dbf303..a14b8261fdb 100644 --- a/src/backend/utils/adt/rangetypes_gist.c +++ b/src/backend/utils/adt/rangetypes_gist.c @@ -1350,10 +1350,10 @@ range_gist_double_sorting_split(TypeCacheEntry *typcache, /* Fill arrays of bounds */ for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) { - RangeType *range = DatumGetRangeTypeP(entryvec->vector[i].key); + RangeType *thisrange = DatumGetRangeTypeP(entryvec->vector[i].key); bool empty; - range_deserialize(typcache, range, + range_deserialize(typcache, thisrange, &by_lower[i - FirstOffsetNumber].lower, &by_lower[i - FirstOffsetNumber].upper, &empty); -- 2.17.1
>From d35ec6a168342182db48442545dd58649ac85094 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 19:21:49 -0500 Subject: [PATCH 24/26] avoid shadow vars: ecpglib/execute.c: len commit a4f25b6a9c2dbf5f38e498922e3761cb3bf46ba0 Author: Michael Meskes <mes...@postgresql.org> Date: Sun Mar 16 10:42:54 2003 +0000 Started working on a seperate pgtypes library. First test work. PLEASE test compilation on iother systems. --- src/interfaces/ecpg/ecpglib/execute.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index bd94bd4e6c6..2d34f76cd73 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -367,10 +367,10 @@ ecpg_store_result(const PGresult *results, int act_field, /* check strlen for each tuple */ for (act_tuple = 0; act_tuple < ntuples; act_tuple++) { - int len = strlen(PQgetvalue(results, act_tuple, act_field)) + 1; + int thislen = strlen(PQgetvalue(results, act_tuple, act_field)) + 1; - if (len > var->varcharsize) - var->varcharsize = len; + if (thislen > var->varcharsize) + var->varcharsize = thislen; } var->offset *= var->varcharsize; len = var->offset * ntuples; -- 2.17.1
>From 2faa21ca588f0af51fbd69b4d37dd5c82f8bb5cd Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Tue, 16 Aug 2022 21:05:47 -0500 Subject: [PATCH 25/26] avoid shadow vars: autovacuum.c: db commit e2a186b03cc1a87cf26644db18f28a20f10bd739 Author: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Mon Apr 16 18:30:04 2007 +0000 Add a multi-worker capability to autovacuum. This allows multiple worker --- src/backend/postmaster/autovacuum.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 70a9176c54c..9d5ddb80974 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -1102,14 +1102,14 @@ rebuild_database_list(Oid newdb) */ for (i = 0; i < nelems; i++) { - avl_dbase *db = &(dbary[i]); + avl_dbase *thisdb = &(dbary[i]); current_time = TimestampTzPlusMilliseconds(current_time, millis_increment); - db->adl_next_worker = current_time; + thisdb->adl_next_worker = current_time; /* later elements should go closer to the head of the list */ - dlist_push_head(&DatabaseList, &db->adl_node); + dlist_push_head(&DatabaseList, &thisdb->adl_node); } } -- 2.17.1
>From a1c1323ca209e7de7198066843d854cbc9fab127 Mon Sep 17 00:00:00 2001 From: Justin Pryzby <pryz...@telsasoft.com> Date: Wed, 17 Aug 2022 00:05:30 -0500 Subject: [PATCH 26/26] avoid shadow vars: basebackup.c: ti commit 3866ff6149a3b072561e65b3f71f63498e77b6b2 Author: Magnus Hagander <mag...@hagander.net> Date: Sat Jan 15 19:18:14 2011 +0100 Enumerate available tablespaces after starting the backup --- src/backend/backup/basebackup.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/backup/basebackup.c b/src/backend/backup/basebackup.c index 715428029b3..b3367dccf74 100644 --- a/src/backend/backup/basebackup.c +++ b/src/backend/backup/basebackup.c @@ -306,9 +306,9 @@ perform_base_backup(basebackup_options *opt, bbsink *sink) /* Send off our tablespaces one by one */ foreach(lc, state.tablespaces) { - tablespaceinfo *ti = (tablespaceinfo *) lfirst(lc); + tablespaceinfo *thisti = (tablespaceinfo *) lfirst(lc); - if (ti->path == NULL) + if (thisti->path == NULL) { struct stat statbuf; bool sendtblspclinks = true; @@ -342,11 +342,11 @@ perform_base_backup(basebackup_options *opt, bbsink *sink) } else { - char *archive_name = psprintf("%s.tar", ti->oid); + char *archive_name = psprintf("%s.tar", thisti->oid); bbsink_begin_archive(sink, archive_name); - sendTablespace(sink, ti->path, ti->oid, false, &manifest); + sendTablespace(sink, thisti->path, thisti->oid, false, &manifest); } /* @@ -355,7 +355,7 @@ perform_base_backup(basebackup_options *opt, bbsink *sink) * include the xlog files below and stop afterwards. This is safe * since the main data directory is always sent *last*. */ - if (opt->includewal && ti->path == NULL) + if (opt->includewal && thisti->path == NULL) { Assert(lnext(state.tablespaces, lc) == NULL); } -- 2.17.1