From 7d51aaf9fea35367e36d143828412727a44d63d6 Mon Sep 17 00:00:00 2001 From: Melanie Plageman Date: Wed, 3 Dec 2025 10:42:53 -0500 Subject: [PATCH v23 01/14] Simplify vacuum visibility assertion Phase I vacuum gives the page a once-over after pruning and freezing to check that the values of all_visible and all_frozen agree with the result of heap_page_is_all_visible(). This is meant to keep the logic in phase I for determining visibility in sync with the logic in phase III. Rewrite the assertion to avoid an Assert(false). Suggested by Andres Freund. --- src/backend/access/heap/vacuumlazy.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index 65bb0568a86..984d5879947 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -2028,10 +2028,9 @@ lazy_scan_prune(LVRelState *vacrel, Assert(presult.lpdead_items == 0); - if (!heap_page_is_all_visible(vacrel->rel, buf, - vacrel->cutoffs.OldestXmin, &debug_all_frozen, - &debug_cutoff, &vacrel->offnum)) - Assert(false); + Assert(heap_page_is_all_visible(vacrel->rel, buf, + vacrel->cutoffs.OldestXmin, &debug_all_frozen, + &debug_cutoff, &vacrel->offnum)); Assert(presult.all_frozen == debug_all_frozen); -- 2.43.0