diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 085bd1e407..7ac0aa588f 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -263,7 +263,7 @@ static TransactionId latestObservedXid = InvalidTransactionId; * the highest xid that might still be running that we don't have in * KnownAssignedXids. */ -static TransactionId standbySnapshotPendingXmin; +static TransactionId standbySnapshotPendingXmin = InvalidTransactionId; /* * State for visibility checks on different types of relations. See struct @@ -280,7 +280,7 @@ static GlobalVisState GlobalVisTempRels; * recomputed, or InvalidTransactionId if it has not. Used to limit how many * times accurate horizons are recomputed. See GlobalVisTestShouldUpdate(). */ -static TransactionId ComputeXidHorizonsResultLastXmin; +static TransactionId ComputeXidHorizonsResultLastXmin = InvalidTransactionId; #ifdef XIDCACHE_DEBUG @@ -703,7 +703,7 @@ ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid) static inline void ProcArrayEndTransactionInternal(PGPROC *proc, TransactionId latestXid) { - size_t pgxactoff = proc->pgxactoff; + int pgxactoff = proc->pgxactoff; /* * Note: we need exclusive lock here because we're going to change other @@ -829,12 +829,12 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid) /* Walk the list and clear all XIDs. */ while (nextidx != INVALID_PGPROCNO) { - PGPROC *proc = &allProcs[nextidx]; + PGPROC *nextproc = &allProcs[nextidx]; - ProcArrayEndTransactionInternal(proc, proc->procArrayGroupMemberXid); + ProcArrayEndTransactionInternal(nextproc, nextproc->procArrayGroupMemberXid); /* Move to next proc in list. */ - nextidx = pg_atomic_read_u32(&proc->procArrayGroupNext); + nextidx = pg_atomic_read_u32(&nextproc->procArrayGroupNext); } /* We're done with the lock now. */ @@ -849,18 +849,18 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid) */ while (wakeidx != INVALID_PGPROCNO) { - PGPROC *proc = &allProcs[wakeidx]; + PGPROC *nextproc = &allProcs[wakeidx]; - wakeidx = pg_atomic_read_u32(&proc->procArrayGroupNext); - pg_atomic_write_u32(&proc->procArrayGroupNext, INVALID_PGPROCNO); + wakeidx = pg_atomic_read_u32(&nextproc->procArrayGroupNext); + pg_atomic_write_u32(&nextproc->procArrayGroupNext, INVALID_PGPROCNO); /* ensure all previous writes are visible before follower continues. */ pg_write_barrier(); - proc->procArrayGroupMember = false; + nextproc->procArrayGroupMember = false; - if (proc != MyProc) - PGSemaphoreUnlock(proc->sem); + if (nextproc != MyProc) + PGSemaphoreUnlock(nextproc->sem); } } @@ -875,7 +875,7 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid) void ProcArrayClearTransaction(PGPROC *proc) { - size_t pgxactoff; + int pgxactoff; /* * Currently we need to lock ProcArrayLock exclusively here, as we @@ -1355,7 +1355,7 @@ TransactionIdIsInProgress(TransactionId xid) TransactionId topxid; TransactionId latestCompletedXid; int mypgxactoff; - size_t numProcs; + int numProcs; int j; /* @@ -1432,7 +1432,7 @@ TransactionIdIsInProgress(TransactionId xid) /* No shortcuts, gotta grovel through the array */ mypgxactoff = MyProc->pgxactoff; numProcs = arrayP->numProcs; - for (size_t pgxactoff = 0; pgxactoff < numProcs; pgxactoff++) + for (int pgxactoff = 0; pgxactoff < numProcs; pgxactoff++) { int pgprocno; PGPROC *proc; @@ -2166,7 +2166,7 @@ GetSnapshotData(Snapshot snapshot) TransactionId *other_xids = ProcGlobal->xids; TransactionId xmin; TransactionId xmax; - size_t count = 0; + TransactionId count = 0; int subcount = 0; bool suboverflowed = false; FullTransactionId latest_completed; @@ -2248,7 +2248,7 @@ GetSnapshotData(Snapshot snapshot) if (!snapshot->takenDuringRecovery) { - size_t numProcs = arrayP->numProcs; + int numProcs = arrayP->numProcs; TransactionId *xip = snapshot->xip; int *pgprocnos = arrayP->pgprocnos; XidCacheStatus *subxidStates = ProcGlobal->subxidStates; @@ -2258,7 +2258,7 @@ GetSnapshotData(Snapshot snapshot) * First collect set of pgxactoff/xids that need to be included in the * snapshot. */ - for (size_t pgxactoff = 0; pgxactoff < numProcs; pgxactoff++) + for (int pgxactoff = 0; pgxactoff < numProcs; pgxactoff++) { /* Fetch xid just once - see GetNewTransactionId */ TransactionId xid = UINT32_ACCESS_ONCE(other_xids[pgxactoff]);