Explain pruning pgstats accounting subtleties.
commitb0f7425ec2445678f32381de8bd3174d3cc2167e
authorPeter Geoghegan <pg@bowt.ie>
Sat, 13 Nov 2021 03:45:58 +0000 (12 19:45 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Sat, 13 Nov 2021 03:45:58 +0000 (12 19:45 -0800)
treede648d2e08b9fc79d976a5dfeea07088652449f3
parent05d8785af2a192d436df5b7734aacb4e0bab5da8
Explain pruning pgstats accounting subtleties.

Add a comment explaining why the pgstats accounting used during
opportunistic heap pruning operations (to maintain the current number of
dead tuples in the relation) needs to compensate by subtracting away the
number of new LP_DEAD items.  This is needed so it can avoid completely
forgetting about tuples that become LP_DEAD items during pruning -- they
should still count.

It seems more natural to discuss this issue at the only relevant call
site (opportunistic pruning), since the same issue does not apply to the
only other caller (the VACUUM call site).  Move everything there too.

Author: Peter Geoghegan <pg@bowt.ie>
Discussion: https://postgr.es/m/CAH2-Wzm7f+A6ej650gi_ifTgbhsadVW5cujAL3punpupHff5Yg@mail.gmail.com
src/backend/access/heap/pruneheap.c
src/backend/access/heap/vacuumlazy.c
src/include/access/heapam.h