From f57302143cea857b29b4f19f30bad0e28209c50d Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Tue, 23 Jun 2020 08:35:29 -0500 Subject: [PATCH v2 3/5] Save phase/blkno in local variables, for consistency with indname --- src/backend/access/heap/vacuumlazy.c | 32 +++++++++++----------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index 43a3c093fd..2393269565 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -1819,14 +1819,14 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats) int npages; PGRUsage ru0; Buffer vmbuffer = InvalidBuffer; - LVRelStats olderrinfo; + int oldphase = vacrelstats->phase, + oldblkno = vacrelstats->blkno; /* Report that we are now vacuuming the heap */ pgstat_progress_update_param(PROGRESS_VACUUM_PHASE, PROGRESS_VACUUM_PHASE_VACUUM_HEAP); /* Update error traceback information */ - olderrinfo = *vacrelstats; update_vacuum_error_info(vacrelstats, VACUUM_ERRCB_PHASE_VACUUM_HEAP, InvalidBlockNumber); @@ -1878,9 +1878,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats) errdetail_internal("%s", pg_rusage_show(&ru0)))); /* Revert to the previous phase information for error traceback */ - update_vacuum_error_info(vacrelstats, - olderrinfo.phase, - olderrinfo.blkno); + update_vacuum_error_info(vacrelstats, oldphase, oldblkno); } /* @@ -1903,12 +1901,12 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer, int uncnt = 0; TransactionId visibility_cutoff_xid; bool all_frozen; - LVRelStats olderrinfo; + int oldphase = vacrelstats->phase, + oldblkno = vacrelstats->blkno; pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno); /* Update error traceback information */ - olderrinfo = *vacrelstats; update_vacuum_error_info(vacrelstats, VACUUM_ERRCB_PHASE_VACUUM_HEAP, blkno); @@ -1989,9 +1987,7 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer, } /* Revert to the previous phase information for error traceback */ - update_vacuum_error_info(vacrelstats, - olderrinfo.phase, - olderrinfo.blkno); + update_vacuum_error_info(vacrelstats, oldphase, oldblkno); return tupindex; } @@ -2401,7 +2397,8 @@ lazy_vacuum_index(Relation indrel, IndexBulkDeleteResult **stats, IndexVacuumInfo ivinfo; const char *msg; PGRUsage ru0; - LVRelStats olderrinfo; + int oldphase = vacrelstats->phase, + oldblkno = vacrelstats->blkno; pg_rusage_init(&ru0); @@ -2414,7 +2411,6 @@ lazy_vacuum_index(Relation indrel, IndexBulkDeleteResult **stats, ivinfo.strategy = vac_strategy; /* Update error traceback information */ - olderrinfo = *vacrelstats; /* The index name is also saved during this phase */ vacrelstats->indname = pstrdup(RelationGetRelationName(indrel)); update_vacuum_error_info(vacrelstats, @@ -2437,9 +2433,7 @@ lazy_vacuum_index(Relation indrel, IndexBulkDeleteResult **stats, errdetail_internal("%s", pg_rusage_show(&ru0)))); /* Revert to the previous phase information for error traceback */ - update_vacuum_error_info(vacrelstats, - olderrinfo.phase, - olderrinfo.blkno); + update_vacuum_error_info(vacrelstats, oldphase, oldblkno); pfree(vacrelstats->indname); } @@ -2457,7 +2451,8 @@ lazy_cleanup_index(Relation indrel, IndexVacuumInfo ivinfo; const char *msg; PGRUsage ru0; - LVRelStats olderrinfo; + int oldphase = vacrelstats->phase, + oldblkno = vacrelstats->blkno; pg_rusage_init(&ru0); @@ -2471,7 +2466,6 @@ lazy_cleanup_index(Relation indrel, ivinfo.strategy = vac_strategy; /* Update error traceback information */ - olderrinfo = *vacrelstats; /* The index name is also saved during this phase */ vacrelstats->indname = pstrdup(RelationGetRelationName(indrel)); update_vacuum_error_info(vacrelstats, @@ -2481,9 +2475,7 @@ lazy_cleanup_index(Relation indrel, *stats = index_vacuum_cleanup(&ivinfo, *stats); /* Revert back to the old phase information for error traceback */ - update_vacuum_error_info(vacrelstats, - olderrinfo.phase, - olderrinfo.blkno); + update_vacuum_error_info(vacrelstats, oldphase, oldblkno); pfree(vacrelstats->indname); if (!(*stats)) -- 2.17.0