v11-0010-edits.patch.nocibot
application/octet-stream
Filename: v11-0010-edits.patch.nocibot
Type: application/octet-stream
Part: 0
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index 62d58da4abc..85018482798 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -1818,14 +1818,19 @@ MultiXactShmemRequest(void *arg)
*/
}
-static void
-MultiXactShmemInit(void *arg)
+static void MultiXactSetupPointers(void)
{
/*
* Set up array pointers.
*/
OldestMemberMXactId = MultiXactState->perBackendXactIds;
OldestVisibleMXactId = OldestMemberMXactId + NumMemberSlots;
+}
+
+static void
+MultiXactShmemInit(void *arg)
+{
+ MultiXactSetupPointers();
SlruPagePrecedesUnitTests(MultiXactOffsetCtl, MULTIXACT_OFFSETS_PER_PAGE);
}
@@ -1833,11 +1838,7 @@ MultiXactShmemInit(void *arg)
static void
MultiXactShmemAttach(void *arg)
{
- /*
- * Set up array pointers.
- */
- OldestMemberMXactId = MultiXactState->perBackendXactIds;
- OldestVisibleMXactId = OldestMemberMXactId + NumMemberSlots;
+ MultiXactSetupPointers();
}
/*
diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c
index 9c389b23506..28f963ee035 100644
--- a/src/backend/storage/lmgr/predicate.c
+++ b/src/backend/storage/lmgr/predicate.c
@@ -1246,6 +1246,17 @@ PredicateLockShmemRequest(void *arg)
);
}
+static void
+PredicateLockSetGlobals(void)
+{
+ /* This never changes, so let's keep a local copy. */
+ OldCommittedSxact = PredXact->OldCommittedSxact;
+
+ /* Pre-calculate the hash and partition lock of the scratch entry */
+ ScratchTargetTagHash = PredicateLockTargetTagHashCode(&ScratchTargetTag);
+ ScratchPartitionLock = PredicateLockHashPartitionLock(ScratchTargetTagHash);
+}
+
static void
PredicateLockShmemInit(void *arg)
{
@@ -1323,12 +1334,7 @@ PredicateLockShmemInit(void *arg)
serialControl->tailXid = InvalidTransactionId;
LWLockRelease(SerialControlLock);
- /* This never changes, so let's keep a local copy. */
- OldCommittedSxact = PredXact->OldCommittedSxact;
-
- /* Pre-calculate the hash and partition lock of the scratch entry */
- ScratchTargetTagHash = PredicateLockTargetTagHashCode(&ScratchTargetTag);
- ScratchPartitionLock = PredicateLockHashPartitionLock(ScratchTargetTagHash);
+ PredicateLockSetGlobals();
SlruPagePrecedesUnitTests(SerialSlruCtl, SERIAL_ENTRIESPERPAGE);
}
@@ -1336,12 +1342,7 @@ PredicateLockShmemInit(void *arg)
static void
PredicateLockShmemAttach(void *arg)
{
- /* This never changes, so let's keep a local copy. */
- OldCommittedSxact = PredXact->OldCommittedSxact;
-
- /* Pre-calculate the hash and partition lock of the scratch entry */
- ScratchTargetTagHash = PredicateLockTargetTagHashCode(&ScratchTargetTag);
- ScratchPartitionLock = PredicateLockHashPartitionLock(ScratchTargetTagHash);
+ PredicateLockSetGlobals();
}
/*