forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitb4af70c
committed
Simplify state managed by VACUUM.
Reorganize the state struct used by VACUUM -- group related itemstogether to make it easier to understand. Also stop relying on stackvariables inside lazy_scan_heap() -- move those into the state structinstead. Doing things this way simplifies large groups of relatedfunctions whose function signatures had a lot of unnecessary redundancy.Switch over to using int64 for the struct fields used to count thingsthat are reported to the user via log_autovacuum and VACUUM VERBOSEoutput. We were using double, but that doesn't seem to have anyadvantages. Using int64 makes it possible to add assertions that verifythat the first pass over the heap (pruning) encounters precisely thesame number of LP_DEAD items that get deleted from indexes later on, inthe second pass over the heap. These assertions will be added in latercommits.Finally, adjust the signatures of functions with IndexBulkDeleteResultpointer arguments in cases where there was ambiguity about whether ornot the argument relates to a single index or all indexes. Functionsnow use the idiom that both ambulkdelete() and amvacuumcleanup() havealways used (where appropriate): accept a mutable IndexBulkDeleteResultpointer argument, and return a result IndexBulkDeleteResult pointer tocaller.Author: Peter Geoghegan <pg@bowt.ie>Reviewed-By: Masahiko Sawada <sawada.mshk@gmail.com>Reviewed-By: Robert Haas <robertmhaas@gmail.com>Discussion:https://postgr.es/m/CAH2-WzkeOSYwC6KNckbhk2b1aNnWum6Yyn0NKP9D-Hq1LGTDPw@mail.gmail.com1 parent6c3ffd6 commitb4af70c