@@ -306,30 +306,24 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
306306{
307307 LVRelState * vacrel ;
308308 bool verbose ,
309- instrument ;
309+ instrument ,
310+ aggressive ,
311+ skipwithvm ,
312+ frozenxid_updated ,
313+ minmulti_updated ;
314+ TransactionId OldestXmin ,
315+ FreezeLimit ;
316+ MultiXactId MultiXactCutoff ;
317+ BlockNumber orig_rel_pages ,
318+ new_rel_pages ,
319+ new_rel_allvisible ;
310320 PGRUsage ru0 ;
311321 TimestampTz starttime = 0 ;
312- WalUsage walusage_start = pgWalUsage ;
313- WalUsage walusage = {0 , 0 , 0 };
314- long secs ;
315- int usecs ;
316- double read_rate ,
317- write_rate ;
318- bool aggressive ,
319- skipwithvm ;
320- bool frozenxid_updated ,
321- minmulti_updated ;
322- BlockNumber orig_rel_pages ;
323- char * * indnames = NULL ;
324- BlockNumber new_rel_pages ;
325- BlockNumber new_rel_allvisible ;
326- double new_live_tuples ;
327- ErrorContextCallback errcallback ;
328322 PgStat_Counter startreadtime = 0 ;
329323 PgStat_Counter startwritetime = 0 ;
330- TransactionId OldestXmin ;
331- TransactionId FreezeLimit ;
332- MultiXactId MultiXactCutoff ;
324+ WalUsage walusage_start = pgWalUsage ;
325+ ErrorContextCallback errcallback ;
326+ char * * indnames = NULL ;
333327
334328 verbose = (params -> options & VACOPT_VERBOSE ) != 0 ;
335329 instrument = (verbose || (IsAutoVacuumWorkerProcess () &&
@@ -557,7 +551,6 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
557551 * relpages to.
558552 */
559553 new_rel_pages = vacrel -> rel_pages ; /* After possible rel truncation */
560- new_live_tuples = vacrel -> new_live_tuples ;
561554 visibilitymap_count (rel , & new_rel_allvisible , NULL );
562555 if (new_rel_allvisible > new_rel_pages )
563556 new_rel_allvisible = new_rel_pages ;
@@ -578,7 +571,7 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
578571 /* Cannot advance relfrozenxid/relminmxid */
579572 Assert (!aggressive );
580573 frozenxid_updated = minmulti_updated = false;
581- vac_update_relstats (rel , new_rel_pages , new_live_tuples ,
574+ vac_update_relstats (rel , new_rel_pages , vacrel -> new_live_tuples ,
582575 new_rel_allvisible , vacrel -> nindexes > 0 ,
583576 InvalidTransactionId , InvalidMultiXactId ,
584577 NULL , NULL , false);
@@ -587,7 +580,7 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
587580 {
588581 Assert (vacrel -> scanned_pages + vacrel -> frozenskipped_pages ==
589582 orig_rel_pages );
590- vac_update_relstats (rel , new_rel_pages , new_live_tuples ,
583+ vac_update_relstats (rel , new_rel_pages , vacrel -> new_live_tuples ,
591584 new_rel_allvisible , vacrel -> nindexes > 0 ,
592585 FreezeLimit , MultiXactCutoff ,
593586 & frozenxid_updated , & minmulti_updated , false);
@@ -605,7 +598,7 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
605598 */
606599 pgstat_report_vacuum (RelationGetRelid (rel ),
607600 rel -> rd_rel -> relisshared ,
608- Max (new_live_tuples , 0 ),
601+ Max (vacrel -> new_live_tuples , 0 ),
609602 vacrel -> recently_dead_tuples +
610603 vacrel -> missed_dead_tuples );
611604 pgstat_progress_end_command ();
@@ -618,6 +611,11 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
618611 TimestampDifferenceExceeds (starttime , endtime ,
619612 params -> log_min_duration ))
620613 {
614+ long secs ;
615+ int usecs ;
616+ WalUsage walusage ;
617+ double read_rate ,
618+ write_rate ;
621619 StringInfoData buf ;
622620 char * msgfmt ;
623621 int32 diff ;
@@ -674,7 +672,7 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
674672 vacrel -> num_index_scans );
675673 appendStringInfo (& buf , _ ("pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" ),
676674 vacrel -> removed_pages ,
677- vacrel -> rel_pages ,
675+ new_rel_pages ,
678676 vacrel -> scanned_pages ,
679677 orig_rel_pages == 0 ? 100.0 :
680678 100.0 * vacrel -> scanned_pages / orig_rel_pages );
0 commit comments