From 693053ed41fa303cae322b834ae33d880f829de0 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 30 Aug 2016 12:00:00 -0400 Subject: [PATCH v2 15/23] Workaround for using typdef'ed ints in loops Types made from int don't have a ++ operator in C++, so they can't be used in for loops without further work. Needs more research --- src/backend/access/transam/xact.c | 4 ++-- src/backend/commands/tablecmds.c | 2 +- src/backend/storage/smgr/md.c | 8 ++++---- src/backend/storage/smgr/smgr.c | 6 +++--- src/backend/utils/adt/dbsize.c | 6 +++--- src/bin/pgbench/pgbench.c | 5 ++++- src/common/relpath.c | 4 ++-- 7 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 82f9a3c5c6..d9a33bc933 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -5460,7 +5460,7 @@ xact_redo_commit(xl_xact_parsed_commit *parsed, for (i = 0; i < parsed->nrels; i++) { SMgrRelation srel = smgropen(parsed->xnodes[i], InvalidBackendId); - ForkNumber fork; + int fork; for (fork = 0; fork <= MAX_FORKNUM; fork++) XLogDropRelation(parsed->xnodes[i], fork); @@ -5570,7 +5570,7 @@ xact_redo_abort(xl_xact_parsed_abort *parsed, TransactionId xid) for (i = 0; i < parsed->nrels; i++) { SMgrRelation srel = smgropen(parsed->xnodes[i], InvalidBackendId); - ForkNumber fork; + int fork; for (fork = 0; fork <= MAX_FORKNUM; fork++) XLogDropRelation(parsed->xnodes[i], fork); diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 56906d603c..f1fffb7edd 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -10107,7 +10107,7 @@ ATExecSetTableSpace(Oid tableOid, Oid newTableSpace, LOCKMODE lockmode) Relation pg_class; HeapTuple tuple; Form_pg_class rd_rel; - ForkNumber forkNum; + int forkNum; List *reltoastidxids = NIL; ListCell *lc; diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 6c17b54f0d..201edaaeed 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -398,7 +398,7 @@ mdunlink(RelFileNodeBackend rnode, ForkNumber forkNum, bool isRedo) /* Now do the per-fork work */ if (forkNum == InvalidForkNumber) { - for (forkNum = 0; forkNum <= MAX_FORKNUM; forkNum++) + for (int forkNum = 0; forkNum <= MAX_FORKNUM; forkNum++) mdunlinkfork(rnode, forkNum, isRedo); } else @@ -1130,7 +1130,7 @@ mdsync(void) hash_seq_init(&hstat, pendingOpsTable); while ((entry = (PendingOperationEntry *) hash_seq_search(&hstat)) != NULL) { - ForkNumber forknum; + int forknum; /* * If the entry is new then don't process it this time; it might @@ -1535,7 +1535,7 @@ RememberFsyncRequest(RelFileNode rnode, ForkNumber forknum, BlockNumber segno) if (forknum == InvalidForkNumber) { /* remove requests for all forks */ - for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) + for (int forknum = 0; forknum <= MAX_FORKNUM; forknum++) { bms_free(entry->requests[forknum]); entry->requests[forknum] = NULL; @@ -1567,7 +1567,7 @@ RememberFsyncRequest(RelFileNode rnode, ForkNumber forknum, BlockNumber segno) if (entry->rnode.dbNode == rnode.dbNode) { /* remove requests for all forks */ - for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) + for (int forknum = 0; forknum <= MAX_FORKNUM; forknum++) { bms_free(entry->requests[forknum]); entry->requests[forknum] = NULL; diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 0ed1fe91d5..d0699ae619 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -296,7 +296,7 @@ void smgrclose(SMgrRelation reln) { SMgrRelation *owner; - ForkNumber forknum; + int forknum; for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) (*(smgrsw[reln->smgr_which].smgr_close)) (reln, forknum); @@ -415,7 +415,7 @@ smgrdounlink(SMgrRelation reln, bool isRedo) { RelFileNodeBackend rnode = reln->smgr_rnode; int which = reln->smgr_which; - ForkNumber forknum; + int forknum; /* Close the forks at smgr level */ for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) @@ -472,7 +472,7 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) { int i = 0; RelFileNodeBackend *rnodes; - ForkNumber forknum; + int forknum; if (nrels == 0) return; diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index 8cdd1dc4f7..340f7a08bf 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -341,7 +341,7 @@ calculate_toast_table_size(Oid toastrelid) { int64 size = 0; Relation toastRel; - ForkNumber forkNum; + int forkNum; ListCell *lc; List *indexlist; @@ -386,7 +386,7 @@ static int64 calculate_table_size(Relation rel) { int64 size = 0; - ForkNumber forkNum; + int forkNum; /* * heap size, including FSM and VM @@ -426,7 +426,7 @@ calculate_indexes_size(Relation rel) { Oid idxOid = lfirst_oid(cell); Relation idxRel; - ForkNumber forkNum; + int forkNum; idxRel = relation_open(idxOid, AccessShareLock); diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index f6cb5d4b10..83cc0e7cf2 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -3901,9 +3901,12 @@ main(int argc, char **argv) fprintf(stderr, "query mode (-M) should be specified before any transaction scripts (-f or -b)\n"); exit(1); } - for (querymode = 0; querymode < NUM_QUERYMODE; querymode++) + for (int qm = 0; qm < NUM_QUERYMODE; qm++) if (strcmp(optarg, QUERYMODE[querymode]) == 0) + { + querymode = qm; break; + } if (querymode >= NUM_QUERYMODE) { fprintf(stderr, "invalid query mode (-M): \"%s\"\n", diff --git a/src/common/relpath.c b/src/common/relpath.c index c2f36625c1..911ca7543e 100644 --- a/src/common/relpath.c +++ b/src/common/relpath.c @@ -47,7 +47,7 @@ const char *const forkNames[] = { ForkNumber forkname_to_number(const char *forkName) { - ForkNumber forkNum; + int forkNum; for (forkNum = 0; forkNum <= MAX_FORKNUM; forkNum++) if (strcmp(forkNames[forkNum], forkName) == 0) @@ -78,7 +78,7 @@ forkname_to_number(const char *forkName) int forkname_chars(const char *str, ForkNumber *fork) { - ForkNumber forkNum; + int forkNum; for (forkNum = 1; forkNum <= MAX_FORKNUM; forkNum++) { -- 2.12.0