From: Peter Geoghegan Date: Mon, 3 Apr 2023 18:47:48 +0000 (-0700) Subject: Make SP-GiST redirect cleanup more aggressive. X-Git-Tag: REL_16_BETA1~342 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=05a304a855104a8eb6394e044bfbc8e761a4d635;p=postgresql.git Make SP-GiST redirect cleanup more aggressive. Commit 61b313e4 made VACUUM pass down a heaprel to index AM bulkdelete and vacuumcleanup routines. Although this was primarily intended as preparation for logical decoding on standbys, it also made it easy to correct an old deficiency in how we determine how to cleanup SP-GiST redirect and placeholder tuples. Pass the heaprel to GlobalVisTestFor() during cleanup of redirect and placeholder tuples, rather than pessimistically passing NULL. Author: Bertrand Drouvot Discussion: https://postgr.es/m/02392033-f030-a3c8-c7d0-5c27eb529fec@gmail.com --- diff --git a/src/backend/access/spgist/spgvacuum.c b/src/backend/access/spgist/spgvacuum.c index 2f4a4aad241..8a5b540c809 100644 --- a/src/backend/access/spgist/spgvacuum.c +++ b/src/backend/access/spgist/spgvacuum.c @@ -507,8 +507,7 @@ vacuumRedirectAndPlaceholder(Relation index, Relation heaprel, Buffer buffer) xlrec.nToPlaceholder = 0; xlrec.snapshotConflictHorizon = InvalidTransactionId; - /* XXX: providing heap relation would allow more pruning */ - vistest = GlobalVisTestFor(NULL); + vistest = GlobalVisTestFor(heaprel); START_CRIT_SECTION();