diff options
Diffstat (limited to 'src/backend/access')
-rw-r--r-- | src/backend/access/nbtree/nbtpage.c | 7 | ||||
-rw-r--r-- | src/backend/access/nbtree/nbtree.c | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c index 151ad37a542..0144c3ab571 100644 --- a/src/backend/access/nbtree/nbtpage.c +++ b/src/backend/access/nbtree/nbtpage.c @@ -935,7 +935,7 @@ _bt_getbuf(Relation rel, Relation heaprel, BlockNumber blkno, int access) return buf; } - if (BTPageIsRecyclable(page)) + if (BTPageIsRecyclable(page, heaprel)) { /* * If we are generating WAL for Hot Standby then create a @@ -2963,6 +2963,7 @@ void _bt_pendingfsm_finalize(Relation rel, BTVacState *vstate) { IndexBulkDeleteResult *stats = vstate->stats; + Relation heaprel = vstate->info->heaprel; Assert(stats->pages_newly_deleted >= vstate->npendingpages); @@ -2995,7 +2996,7 @@ _bt_pendingfsm_finalize(Relation rel, BTVacState *vstate) * essential; GlobalVisCheckRemovableFullXid() will not reliably recognize * that it is now safe to recycle newly deleted pages without this step. */ - GetOldestNonRemovableTransactionId(NULL); + GetOldestNonRemovableTransactionId(heaprel); for (int i = 0; i < vstate->npendingpages; i++) { @@ -3010,7 +3011,7 @@ _bt_pendingfsm_finalize(Relation rel, BTVacState *vstate) * must be non-recyclable too, since _bt_pendingfsm_add() adds pages * to the array in safexid order. */ - if (!GlobalVisCheckRemovableFullXid(NULL, safexid)) + if (!GlobalVisCheckRemovableFullXid(heaprel, safexid)) break; RecordFreeIndexPage(rel, target); diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c index 97a39b0f658..409a2c12100 100644 --- a/src/backend/access/nbtree/nbtree.c +++ b/src/backend/access/nbtree/nbtree.c @@ -1039,6 +1039,7 @@ btvacuumpage(BTVacState *vstate, BlockNumber scanblkno) IndexBulkDeleteCallback callback = vstate->callback; void *callback_state = vstate->callback_state; Relation rel = info->index; + Relation heaprel = info->heaprel; bool attempt_pagedel; BlockNumber blkno, backtrack_to; @@ -1124,7 +1125,7 @@ backtrack: } } - if (!opaque || BTPageIsRecyclable(page)) + if (!opaque || BTPageIsRecyclable(page, heaprel)) { /* Okay to recycle this page (which could be leaf or internal) */ RecordFreeIndexPage(rel, blkno); |