I just noticed $SUBJECT.  This seems to be an oversight in commit 2fc7af5,
which simultaneously combined ckptXidEpoch and ckptXid into ckptFullXid and
removed the only use of that information, i.e., GetNextXidAndEpoch().  Any
objections if I remove it now?

-- 
nathan
>From 19a915582492a2a6a02a0c9865aa74fdcb3e66a1 Mon Sep 17 00:00:00 2001
From: Nathan Bossart <nat...@postgresql.org>
Date: Fri, 11 Jul 2025 15:17:27 -0500
Subject: [PATCH v1 1/1] Remove XLogCtl->ckptFullXid.

---
 src/backend/access/transam/xlog.c | 17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/src/backend/access/transam/xlog.c 
b/src/backend/access/transam/xlog.c
index 88fb9b45b2a..8e7827c6ed9 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -449,7 +449,6 @@ typedef struct XLogCtlData
        /* Protected by info_lck: */
        XLogwrtRqst LogwrtRqst;
        XLogRecPtr      RedoRecPtr;             /* a recent copy of 
Insert->RedoRecPtr */
-       FullTransactionId ckptFullXid;  /* nextXid of latest checkpoint */
        XLogRecPtr      asyncXactLSN;   /* LSN of newest async commit/abort */
        XLogRecPtr      replicationSlotMinLSN;  /* oldest LSN needed by any 
slot */
 
@@ -5744,7 +5743,6 @@ StartupXLOG(void)
        SetMultiXactIdLimit(checkPoint.oldestMulti, checkPoint.oldestMultiDB, 
true);
        SetCommitTsLimit(checkPoint.oldestCommitTsXid,
                                         checkPoint.newestCommitTsXid);
-       XLogCtl->ckptFullXid = checkPoint.nextXid;
 
        /*
         * Clear out any old relcache cache files.  This is *necessary* if we do
@@ -7437,11 +7435,6 @@ CreateCheckPoint(int flags)
        UpdateControlFile();
        LWLockRelease(ControlFileLock);
 
-       /* Update shared-memory copy of checkpoint XID/epoch */
-       SpinLockAcquire(&XLogCtl->info_lck);
-       XLogCtl->ckptFullXid = checkPoint.nextXid;
-       SpinLockRelease(&XLogCtl->info_lck);
-
        /*
         * We are now done with critical updates; no need for system panic if we
         * have trouble while fooling with old log segments.
@@ -8516,11 +8509,6 @@ xlog_redo(XLogReaderState *record)
                ControlFile->checkPointCopy.nextXid = checkPoint.nextXid;
                LWLockRelease(ControlFileLock);
 
-               /* Update shared-memory copy of checkpoint XID/epoch */
-               SpinLockAcquire(&XLogCtl->info_lck);
-               XLogCtl->ckptFullXid = checkPoint.nextXid;
-               SpinLockRelease(&XLogCtl->info_lck);
-
                /*
                 * We should've already switched to the new TLI before 
replaying this
                 * record.
@@ -8577,11 +8565,6 @@ xlog_redo(XLogReaderState *record)
                ControlFile->checkPointCopy.nextXid = checkPoint.nextXid;
                LWLockRelease(ControlFileLock);
 
-               /* Update shared-memory copy of checkpoint XID/epoch */
-               SpinLockAcquire(&XLogCtl->info_lck);
-               XLogCtl->ckptFullXid = checkPoint.nextXid;
-               SpinLockRelease(&XLogCtl->info_lck);
-
                /* TLI should not change in an on-line checkpoint */
                (void) GetCurrentReplayRecPtr(&replayTLI);
                if (checkPoint.ThisTimeLineID != replayTLI)
-- 
2.39.5 (Apple Git-154)

Reply via email to