diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c index 9cfacc620c..8325d2610b 100644 --- a/src/backend/access/transam/commit_ts.c +++ b/src/backend/access/transam/commit_ts.c @@ -184,7 +184,9 @@ TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids, * subxid not on the previous page as head. This way, we only have to * lock/modify each SLRU page once. */ - for (i = 0, headxid = xid;;) + headxid = xid; + i = 0; + for (;;) { int pageno = TransactionIdToCTsPage(headxid); int j; @@ -200,7 +202,7 @@ TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids, pageno); /* if we wrote out all subxids, we're done. */ - if (j + 1 >= nsubxids) + if (j >= nsubxids) break; /* @@ -208,7 +210,7 @@ TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids, * just wrote. */ headxid = subxids[j]; - i += j - i + 1; + i = j + 1; } /* update the cached value in shared memory */