aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/network_spgist.c
diff options
context:
space:
mode:
authorPeter Geoghegan <pg@bowt.ie>2022-03-12 12:52:38 -0800
committerPeter Geoghegan <pg@bowt.ie>2022-03-12 12:52:38 -0800
commit73f6ec3d3c8d5786c54373e71a096e5acf78e7ca (patch)
treebdcfe804efd564ec64a8a14bb8421c4299a54da4 /src/backend/utils/adt/network_spgist.c
parent5b68f75e12831cd5b7d8058320c0ca29bbe76067 (diff)
downloadpostgresql-73f6ec3d3c8d5786c54373e71a096e5acf78e7ca.tar.gz
postgresql-73f6ec3d3c8d5786c54373e71a096e5acf78e7ca.zip
vacuumlazy.c: document vistest and OldestXmin.
Explain the relationship between vacuumlazy.c's vistest and OldestXmin cutoffs. These closely related cutoffs are different in subtle but important ways. Also document a closely related rule: we must establish rel_pages _after_ OldestXmin to ensure that no XID < OldestXmin can be missed by lazy_scan_heap(). It's easier to explain these issues by initializing everything together, so consolidate initialization of vacrel state. Now almost every vacrel field is initialized by heap_vacuum_rel(). The only remaining exception is the dead_items array, which is still managed by lazy_scan_heap() due to interactions with how we initialize parallel VACUUM. Also move the process that updates pg_class entries for each index into heap_vacuum_rel(), and adjust related assertions. All pg_class updates now take place after lazy_scan_heap() returns, which seems clearer. Author: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/20211211045710.ljtuu4gfloh754rs@alap3.anarazel.de Discussion: https://postgr.es/m/CAH2-WznYsUxVT156rCQ+q=YD4S4=1M37hWvvHLz-H1pwSM8-Ew@mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt/network_spgist.c')
0 files changed, 0 insertions, 0 deletions