Clear up issue with FSM and oldest bpto.xact.
authorPeter Geoghegan <pg@bowt.ie>
Fri, 1 May 2020 19:19:39 +0000 (12:19 -0700)
committerPeter Geoghegan <pg@bowt.ie>
Fri, 1 May 2020 19:19:39 +0000 (12:19 -0700)
commit573478564705a801f7313bb793f05932cb875528
treeeae530224014970f9de36b4a3fcf693bc8f78abc
parentd3944c364f32e0087088328145c6421cf24e7905
Clear up issue with FSM and oldest bpto.xact.

On further reflection, code comments added by commit b0229f26 slightly
misrepresented how we determine the oldest bpto.xact for the index.
btvacuumpage() does not treat the bpto.xact of a page that it put in the
FSM as a candidate to be the oldest deleted page (the delete-marked page
that has the oldest bpto.xact XID among all pages encountered).

The definition of a deleted page for the purposes of the bpto.xact
calculation is different from the definition used by the bulk delete
statistics.  The bulk delete statistics don't distinguish between pages
that were deleted by the current VACUUM, pages deleted by a previous
VACUUM operation but not yet recyclable/reusable, and pages that are
reusable (though reusable pages are counted separately).

Backpatch: 11-, just like commit b0229f26.
src/backend/access/nbtree/nbtree.c