Use correct datatype for xmin variables in slot.c
authorMichael Paquier <michael@paquier.xyz>
Thu, 11 Apr 2024 08:19:20 +0000 (17:19 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 11 Apr 2024 08:19:20 +0000 (17:19 +0900)
Two variables storing a slot's effective_xmin and effective_catalog_xmin
were saved as XLogRecPtr, which is incorrect as these should be
TransactionIds.

Oversight in 818fefd8fd44.

Author: Bharath Rupireddy
Discussion: https://postgr.es/m/CALj2ACVPSB74mrDTFezz-LV3Oi6F3SN71QA0oUHvndzi5dwTNg@mail.gmail.com
Backpatch-through: 16

src/backend/replication/slot.c

index 3bddaae022adea86168a63c1c58850d6b202cb4e..cebf44bb0fe425b4aac7761f23fa83566fd54b2c 100644 (file)
@@ -1545,8 +1545,8 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause,
    int         last_signaled_pid = 0;
    bool        released_lock = false;
    bool        terminated = false;
-   XLogRecPtr  initial_effective_xmin = InvalidXLogRecPtr;
-   XLogRecPtr  initial_catalog_effective_xmin = InvalidXLogRecPtr;
+   TransactionId initial_effective_xmin = InvalidTransactionId;
+   TransactionId initial_catalog_effective_xmin = InvalidTransactionId;
    XLogRecPtr  initial_restart_lsn = InvalidXLogRecPtr;
    ReplicationSlotInvalidationCause invalidation_cause_prev PG_USED_FOR_ASSERTS_ONLY = RS_INVAL_NONE;