From 31e73f04ef9e81e551175f95db12bebde368fbd4 Mon Sep 17 00:00:00 2001 From: jcoleman Date: Tue, 3 Oct 2023 19:53:41 -0400 Subject: [PATCH v2 2/6] log when pruning --- src/backend/access/heap/pruneheap.c | 8 ++++++++ src/include/storage/bufpage.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c index fa8f5c1dfb..80eaacbc6c 100644 --- a/src/backend/access/heap/pruneheap.c +++ b/src/backend/access/heap/pruneheap.c @@ -92,6 +92,8 @@ heap_page_prune_opt(Relation relation, Buffer buffer, bool already_locked) GlobalVisState *vistest; Size minfree; + if (relation->rd_id > 16384) + elog(WARNING, "in heap_page_prune_opt"); /* * We can't write WAL in recovery mode, so there's no point trying to * clean the page. The primary will likely issue a cleaning WAL record @@ -216,6 +218,8 @@ heap_page_prune(Relation relation, Buffer buffer, PruneState prstate; HeapTupleData tup; + if (relation->rd_id > 16384) + elog(WARNING, "in heap_page_prune"); /* * Our strategy is to scan the page and make lists of items to change, * then apply the changes within a critical section. This keeps as much @@ -342,6 +346,8 @@ heap_page_prune(Relation relation, Buffer buffer, * Update the page's pd_prune_xid field to either zero, or the lowest * XID of any soon-prunable tuple. */ + if (relation->rd_id > 16384) + elog(WARNING, "setting pd_prune_xid=%u", prstate.new_prune_xid); ((PageHeader) page)->pd_prune_xid = prstate.new_prune_xid; /* @@ -408,6 +414,8 @@ heap_page_prune(Relation relation, Buffer buffer, if (((PageHeader) page)->pd_prune_xid != prstate.new_prune_xid || PageIsFull(page)) { + if (relation->rd_id > 16384) + elog(WARNING, "setting pd_prune_xid=%u", prstate.new_prune_xid); ((PageHeader) page)->pd_prune_xid = prstate.new_prune_xid; PageClearFull(page); MarkBufferDirtyHint(buffer, true); diff --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h index 424ecba028..78b44cbb62 100644 --- a/src/include/storage/bufpage.h +++ b/src/include/storage/bufpage.h @@ -447,7 +447,10 @@ do { \ Assert(TransactionIdIsNormal(xid)); \ if (!TransactionIdIsValid(((PageHeader) (page))->pd_prune_xid) || \ TransactionIdPrecedes(xid, ((PageHeader) (page))->pd_prune_xid)) \ + { \ + elog(WARNING, "PageSetPrunable setting pd_prune_xid=%u", xid); \ ((PageHeader) (page))->pd_prune_xid = (xid); \ + } \ } while (0) #define PageClearPrunable(page) \ (((PageHeader) (page))->pd_prune_xid = InvalidTransactionId) -- 2.39.3 (Apple Git-145)