On Tue, Mar 21, 2023 at 3:37 PM Peter Geoghegan <p...@bowt.ie> wrote: > I think that we should do something like the attached, to completely > avoid this ambiguity. This patch adds a new XLOG_HEAP2 bit that's > similar to XLOG_HEAP_INIT_PAGE -- XLOG_HEAP2_BYVACUUM. This allows all > XLOG_HEAP2 record types to indicate that they took place during > VACUUM, by XOR'ing the flag with the record type/info when > XLogInsert() is called. For now this is only used by PRUNE records. > Tools like pg_walinspect will report a separate "Heap2/PRUNE+BYVACUUM" > record_type, as well as the unadorned Heap2/PRUNE record_type, which > we'll now know must have been opportunistic pruning. > > The approach of using a bit in the style of the heapam init bit makes > sense to me, because the bit is available, and works in a way that is > minimally invasive. Also, one can imagine needing to resolve a similar > ambiguity in the future, when (say) opportunistic freezing is added.
Starting a new, dedicated thread to keep track of this in the CF app. This patch bitrot. Attached is v2, rebased on top of HEAD. -- Peter Geoghegan
v2-0001-Record-which-PRUNE-records-are-from-VACUUM.patch
Description: Binary data