vacuumlazy.c: Standardize rel_pages terminology.
authorPeter Geoghegan <pg@bowt.ie>
Sat, 12 Mar 2022 21:20:45 +0000 (13:20 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Sat, 12 Mar 2022 21:20:45 +0000 (13:20 -0800)
VACUUM's rel_pages field indicates the size of the target heap rel just
after the table_relation_vacuum() operation began.  There are specific
expectations around how rel_pages can be related to other nearby state.
In particular, the range of rel_pages must contain every tuple in the
relation whose tuple headers might contain an XID < OldestXmin.

Consistently refer to the field as rel_pages to make this clearer and
more discoverable.

This is follow-up work to commit 73f6ec3d from earlier today.

Author: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/20220311031351.sbge5m2bpvy2ttxg@alap3.anarazel.de

src/backend/access/heap/vacuumlazy.c

index 7982139baa8bd9f1ef06bbdf48b3338763724f4c..620b7a7af5bd6c0b8c7e335e07581b196ba26dd8 100644 (file)
@@ -825,7 +825,7 @@ static void
 lazy_scan_heap(LVRelState *vacrel, int nworkers)
 {
    VacDeadItems *dead_items;
-   BlockNumber nblocks = vacrel->rel_pages,
+   BlockNumber rel_pages = vacrel->rel_pages,
                blkno,
                next_unskippable_block,
                next_failsafe_block,
@@ -858,7 +858,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
 
    /* Report that we're scanning the heap, advertising total # of blocks */
    initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
-   initprog_val[1] = nblocks;
+   initprog_val[1] = rel_pages;
    initprog_val[2] = dead_items->max_items;
    pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
@@ -882,9 +882,9 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
     * Before entering the main loop, establish the invariant that
     * next_unskippable_block is the next block number >= blkno that we can't
     * skip based on the visibility map, either all-visible for a regular scan
-    * or all-frozen for an aggressive scan.  We set it to nblocks if there's
-    * no such block.  We also set up the skipping_blocks flag correctly at
-    * this stage.
+    * or all-frozen for an aggressive scan.  We set it to rel_pages when
+    * there's no such block.  We also set up the skipping_blocks flag
+    * correctly at this stage.
     *
     * Note: The value returned by visibilitymap_get_status could be slightly
     * out-of-date, since we make this test before reading the corresponding
@@ -902,7 +902,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
    next_unskippable_block = 0;
    if (vacrel->skipwithvm)
    {
-       while (next_unskippable_block < nblocks)
+       while (next_unskippable_block < rel_pages)
        {
            uint8       vmstatus;
 
@@ -929,7 +929,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
    else
        skipping_blocks = false;
 
-   for (blkno = 0; blkno < nblocks; blkno++)
+   for (blkno = 0; blkno < rel_pages; blkno++)
    {
        Buffer      buf;
        Page        page;
@@ -947,7 +947,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
            next_unskippable_block++;
            if (vacrel->skipwithvm)
            {
-               while (next_unskippable_block < nblocks)
+               while (next_unskippable_block < rel_pages)
                {
                    uint8       vmskipflags;
 
@@ -992,7 +992,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
            /*
             * The current page can be skipped if we've seen a long enough run
             * of skippable blocks to justify skipping it -- provided it's not
-            * the last page in the relation (according to rel_pages/nblocks).
+            * the last page in the relation (according to rel_pages).
             *
             * We always scan the table's last page to determine whether it
             * has tuples or not, even if it would otherwise be skipped. This
@@ -1000,7 +1000,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
             * on the table to attempt a truncation that just fails
             * immediately because there are tuples on the last page.
             */
-           if (skipping_blocks && blkno < nblocks - 1)
+           if (skipping_blocks && blkno < rel_pages - 1)
            {
                /*
                 * Tricky, tricky.  If this is in aggressive vacuum, the page
@@ -1367,7 +1367,7 @@ lazy_scan_heap(LVRelState *vacrel, int nworkers)
    vacrel->blkno = InvalidBlockNumber;
 
    /* now we can compute the new value for pg_class.reltuples */
-   vacrel->new_live_tuples = vac_estimate_reltuples(vacrel->rel, nblocks,
+   vacrel->new_live_tuples = vac_estimate_reltuples(vacrel->rel, rel_pages,
                                                     vacrel->scanned_pages,
                                                     vacrel->live_tuples);