From bfe5c4bec75091d5c91813ff9c6994a169ceb8ef Mon Sep 17 00:00:00 2001 From: Melanie Plageman Date: 2025年12月16日 10:30:14 -0500 Subject: [PATCH] Add explanatory comment to prune_freeze_setup() heap_page_prune_and_freeze() fills in PruneState->deadoffsets, the array of OffsetNumbers of dead tuples. It is returned to the caller in the PruneFreezeResult. To avoid having two copies of the array, the PruneState saves only a pointer to the array. This was a bit unusual and confusing, so add a clarifying comment. Author: Melanie Plageman Suggested-by: Chao Li Discussion: https://postgr.es/m/CAEoWx2=jiD1nqch4JQN+odAxZSD7mRvdoHUGJYN2r6tQG_66yQ@mail.gmail.com --- src/backend/access/heap/pruneheap.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c index f99d92725b8..07aa08cfe14 100644 --- a/src/backend/access/heap/pruneheap.c +++ b/src/backend/access/heap/pruneheap.c @@ -385,6 +385,13 @@ prune_freeze_setup(PruneFreezeParams *params, prstate->recently_dead_tuples = 0; prstate->hastup = false; prstate->lpdead_items = 0; + + /* + * deadoffsets are filled in during pruning but are only used to populate + * PruneFreezeResult->deadoffsets. To avoid needing two copies of the + * array, just save a pointer to the result offsets array in the + * PruneState. + */ prstate->deadoffsets = presult->deadoffsets; prstate->frz_conflict_horizon = InvalidTransactionId; -- 2.39.5

AltStyle によって変換されたページ (->オリジナル) /