From d50df1e0cc72298ebe66e8a811ff525a6d09d2f9 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Fri, 15 Nov 2024 11:26:59 -0500 Subject: [PATCH v1] Clear btpo_cycleid in btree_xlog_vacuum --- src/backend/access/nbtree/nbtxlog.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backend/access/nbtree/nbtxlog.c b/src/backend/access/nbtree/nbtxlog.c index 7e91584f1..901b5f70b 100644 --- a/src/backend/access/nbtree/nbtxlog.c +++ b/src/backend/access/nbtree/nbtxlog.c @@ -634,10 +634,11 @@ btree_xlog_vacuum(XLogReaderState *record) PageIndexMultiDelete(page, (OffsetNumber *) ptr, xlrec->ndeleted); /* - * Mark the page as not containing any LP_DEAD items --- see comments - * in _bt_delitems_vacuum(). + * Clear the vacuum cycle ID, and mark the page as not containing any + * LP_DEAD items */ opaque = BTPageGetOpaque(page); + opaque->btpo_cycleid = 0; opaque->btpo_flags &= ~BTP_HAS_GARBAGE; PageSetLSN(page, lsn); @@ -698,7 +699,10 @@ btree_xlog_delete(XLogReaderState *record) if (xlrec->ndeleted > 0) PageIndexMultiDelete(page, (OffsetNumber *) ptr, xlrec->ndeleted); - /* Mark the page as not containing any LP_DEAD items */ + /* + * Do *not* clear the vacuum cycle ID, but do mark the page as not + * containing any LP_DEAD items + */ opaque = BTPageGetOpaque(page); opaque->btpo_flags &= ~BTP_HAS_GARBAGE; -- 2.45.2