diff options
Diffstat (limited to 'src/backend/access/spgist')
-rw-r--r-- | src/backend/access/spgist/spgdoinsert.c | 39 | ||||
-rw-r--r-- | src/backend/access/spgist/spginsert.c | 12 | ||||
-rw-r--r-- | src/backend/access/spgist/spgscan.c | 9 | ||||
-rw-r--r-- | src/backend/access/spgist/spgutils.c | 19 | ||||
-rw-r--r-- | src/backend/access/spgist/spgvacuum.c | 13 | ||||
-rw-r--r-- | src/backend/access/spgist/spgxlog.c | 50 |
6 files changed, 84 insertions, 58 deletions
diff --git a/src/backend/access/spgist/spgdoinsert.c b/src/backend/access/spgist/spgdoinsert.c index f090ca528b1..b780bfea44d 100644 --- a/src/backend/access/spgist/spgdoinsert.c +++ b/src/backend/access/spgist/spgdoinsert.c @@ -451,7 +451,7 @@ moveLeafs(Relation index, SpGistState *state, /* Find a leaf page that will hold them */ nbuf = SpGistGetBuffer(index, GBUF_LEAF | (isNulls ? GBUF_NULLS : 0), size, &xlrec.newPage); - npage = BufferGetPage(nbuf); + npage = BufferGetPage(nbuf, NULL, NULL, BGP_NO_SNAPSHOT_TEST); nblkno = BufferGetBlockNumber(nbuf); Assert(nblkno != current->blkno); @@ -1037,7 +1037,8 @@ doPickSplit(Relation index, SpGistState *state, nodePageSelect = (uint8 *) palloc(sizeof(uint8) * out.nNodes); curspace = currentFreeSpace; - newspace = PageGetExactFreeSpace(BufferGetPage(newLeafBuffer)); + newspace = PageGetExactFreeSpace + (BufferGetPage(newLeafBuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST)); for (i = 0; i < out.nNodes; i++) { if (leafSizes[i] <= curspace) @@ -1070,7 +1071,9 @@ doPickSplit(Relation index, SpGistState *state, /* Repeat the node assignment process --- should succeed now */ curspace = currentFreeSpace; - newspace = PageGetExactFreeSpace(BufferGetPage(newLeafBuffer)); + newspace = PageGetExactFreeSpace + (BufferGetPage(newLeafBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST)); for (i = 0; i < out.nNodes; i++) { if (leafSizes[i] <= curspace) @@ -1201,7 +1204,9 @@ doPickSplit(Relation index, SpGistState *state, it->nextOffset = InvalidOffsetNumber; /* Insert it on page */ - newoffset = SpGistPageAddNewItem(state, BufferGetPage(leafBuffer), + newoffset = SpGistPageAddNewItem(state, + BufferGetPage(leafBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), (Item) it, it->size, &startOffsets[leafPageSelect[i]], false); @@ -1275,7 +1280,8 @@ doPickSplit(Relation index, SpGistState *state, /* Repoint "current" at the new inner tuple */ current->buffer = newInnerBuffer; current->blkno = BufferGetBlockNumber(current->buffer); - current->page = BufferGetPage(current->buffer); + current->page = BufferGetPage(current->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); xlrec.offnumInner = current->offnum = SpGistPageAddNewItem(state, current->page, (Item) innerTuple, innerTuple->size, @@ -1391,24 +1397,22 @@ doPickSplit(Relation index, SpGistState *state, /* Update page LSNs on all affected pages */ if (newLeafBuffer != InvalidBuffer) { - Page page = BufferGetPage(newLeafBuffer); - + Page page = BufferGetPage(newLeafBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); PageSetLSN(page, recptr); } if (saveCurrent.buffer != InvalidBuffer) { - Page page = BufferGetPage(saveCurrent.buffer); - + Page page = BufferGetPage(saveCurrent.buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); PageSetLSN(page, recptr); } PageSetLSN(current->page, recptr); if (parent->buffer != InvalidBuffer) - { PageSetLSN(parent->page, recptr); - } } END_CRIT_SECTION(); @@ -1578,7 +1582,8 @@ spgAddNodeAction(Relation index, SpGistState *state, newInnerTuple->size + sizeof(ItemIdData), &xlrec.newPage); current->blkno = BufferGetBlockNumber(current->buffer); - current->page = BufferGetPage(current->buffer); + current->page = BufferGetPage(current->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); /* * Let's just make real sure new current isn't same as old. Right now @@ -1793,7 +1798,9 @@ spgSplitNodeAction(Relation index, SpGistState *state, { postfixBlkno = BufferGetBlockNumber(newBuffer); xlrec.offnumPostfix = postfixOffset = - SpGistPageAddNewItem(state, BufferGetPage(newBuffer), + SpGistPageAddNewItem(state, + BufferGetPage(newBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), (Item) postfixTuple, postfixTuple->size, NULL, false); MarkBufferDirty(newBuffer); @@ -1840,7 +1847,8 @@ spgSplitNodeAction(Relation index, SpGistState *state, if (newBuffer != InvalidBuffer) { - PageSetLSN(BufferGetPage(newBuffer), recptr); + PageSetLSN(BufferGetPage(newBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), recptr); } } @@ -1984,7 +1992,8 @@ spgdoinsert(Relation index, SpGistState *state, /* inner tuple can be stored on the same page as parent one */ current.buffer = parent.buffer; } - current.page = BufferGetPage(current.buffer); + current.page = BufferGetPage(current.buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); /* should not arrive at a page of the wrong type */ if (isnull ? !SpGistPageStoresNulls(current.page) : diff --git a/src/backend/access/spgist/spginsert.c b/src/backend/access/spgist/spginsert.c index 44fd644e421..3e16b511ac0 100644 --- a/src/backend/access/spgist/spginsert.c +++ b/src/backend/access/spgist/spginsert.c @@ -92,7 +92,8 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo) START_CRIT_SECTION(); - SpGistInitMetapage(BufferGetPage(metabuffer)); + SpGistInitMetapage(BufferGetPage(metabuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST)); MarkBufferDirty(metabuffer); SpGistInitBuffer(rootbuffer, SPGIST_LEAF); MarkBufferDirty(rootbuffer); @@ -115,9 +116,12 @@ spgbuild(Relation heap, Relation index, IndexInfo *indexInfo) recptr = XLogInsert(RM_SPGIST_ID, XLOG_SPGIST_CREATE_INDEX); - PageSetLSN(BufferGetPage(metabuffer), recptr); - PageSetLSN(BufferGetPage(rootbuffer), recptr); - PageSetLSN(BufferGetPage(nullbuffer), recptr); + PageSetLSN(BufferGetPage(metabuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), recptr); + PageSetLSN(BufferGetPage(rootbuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), recptr); + PageSetLSN(BufferGetPage(nullbuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), recptr); } END_CRIT_SECTION(); diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c index 8aa28ecbc39..fafdca31f39 100644 --- a/src/backend/access/spgist/spgscan.c +++ b/src/backend/access/spgist/spgscan.c @@ -301,7 +301,7 @@ spgLeafTest(Relation index, SpGistScanOpaque so, */ static void spgWalk(Relation index, SpGistScanOpaque so, bool scanWholeIndex, - storeRes_func storeRes) + storeRes_func storeRes, Snapshot snapshot) { Buffer buffer = InvalidBuffer; bool reportedSome = false; @@ -341,7 +341,7 @@ redirect: } /* else new pointer points to the same page, no work needed */ - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); isnull = SpGistPageStoresNulls(page) ? true : false; @@ -576,7 +576,7 @@ spggetbitmap(IndexScanDesc scan, TIDBitmap *tbm) so->tbm = tbm; so->ntids = 0; - spgWalk(scan->indexRelation, so, true, storeBitmap); + spgWalk(scan->indexRelation, so, true, storeBitmap, scan->xs_snapshot); return so->ntids; } @@ -635,7 +635,8 @@ spggettuple(IndexScanDesc scan, ScanDirection dir) } so->iPtr = so->nPtrs = 0; - spgWalk(scan->indexRelation, so, false, storeGettuple); + spgWalk(scan->indexRelation, so, false, storeGettuple, + scan->xs_snapshot); if (so->nPtrs == 0) break; /* must have completed scan */ diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c index 201203f91a3..f4bcbeeb4a8 100644 --- a/src/backend/access/spgist/spgutils.c +++ b/src/backend/access/spgist/spgutils.c @@ -126,7 +126,8 @@ spgGetCache(Relation index) metabuffer = ReadBuffer(index, SPGIST_METAPAGE_BLKNO); LockBuffer(metabuffer, BUFFER_LOCK_SHARE); - metadata = SpGistPageGetMeta(BufferGetPage(metabuffer)); + metadata = SpGistPageGetMeta + (BufferGetPage(metabuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST)); if (metadata->magicNumber != SPGIST_MAGIC_NUMBER) elog(ERROR, "index \"%s\" is not an SP-GiST index", @@ -206,7 +207,8 @@ SpGistNewBuffer(Relation index) */ if (ConditionalLockBuffer(buffer)) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); if (PageIsNew(page)) return buffer; /* OK to use, if never initialized */ @@ -256,7 +258,8 @@ SpGistUpdateMetaPage(Relation index) if (ConditionalLockBuffer(metabuffer)) { - metadata = SpGistPageGetMeta(BufferGetPage(metabuffer)); + metadata = SpGistPageGetMeta + (BufferGetPage(metabuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST)); metadata->lastUsedPages = cache->lastUsedPages; MarkBufferDirty(metabuffer); @@ -333,7 +336,9 @@ allocNewBuffer(Relation index, int flags) blkFlags |= GBUF_NULLS; cache->lastUsedPages.cachedPage[blkFlags].blkno = blkno; cache->lastUsedPages.cachedPage[blkFlags].freeSpace = - PageGetExactFreeSpace(BufferGetPage(buffer)); + PageGetExactFreeSpace + (BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST)); UnlockReleaseBuffer(buffer); } } @@ -401,7 +406,7 @@ SpGistGetBuffer(Relation index, int flags, int needSpace, bool *isNew) return allocNewBuffer(index, flags); } - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); if (PageIsNew(page) || SpGistPageIsDeleted(page) || PageIsEmpty(page)) { @@ -460,7 +465,7 @@ SpGistSetLastUsedPage(Relation index, Buffer buffer) SpGistCache *cache = spgGetCache(index); SpGistLastUsedPage *lup; int freeSpace; - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); BlockNumber blkno = BufferGetBlockNumber(buffer); int flags; @@ -508,7 +513,7 @@ void SpGistInitBuffer(Buffer b, uint16 f) { Assert(BufferGetPageSize(b) == BLCKSZ); - SpGistInitPage(BufferGetPage(b), f); + SpGistInitPage(BufferGetPage(b, NULL, NULL, BGP_NO_SNAPSHOT_TEST), f); } /* diff --git a/src/backend/access/spgist/spgvacuum.c b/src/backend/access/spgist/spgvacuum.c index 15b867f24cb..6b57790a6aa 100644 --- a/src/backend/access/spgist/spgvacuum.c +++ b/src/backend/access/spgist/spgvacuum.c @@ -125,7 +125,8 @@ static void vacuumLeafPage(spgBulkDeleteState *bds, Relation index, Buffer buffer, bool forPending) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); spgxlogVacuumLeaf xlrec; OffsetNumber toDead[MaxIndexTuplesPerPage]; OffsetNumber toPlaceholder[MaxIndexTuplesPerPage]; @@ -405,7 +406,8 @@ vacuumLeafPage(spgBulkDeleteState *bds, Relation index, Buffer buffer, static void vacuumLeafRoot(spgBulkDeleteState *bds, Relation index, Buffer buffer) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); spgxlogVacuumRoot xlrec; OffsetNumber toDelete[MaxIndexTuplesPerPage]; OffsetNumber i, @@ -490,7 +492,8 @@ vacuumLeafRoot(spgBulkDeleteState *bds, Relation index, Buffer buffer) static void vacuumRedirectAndPlaceholder(Relation index, Buffer buffer) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); SpGistPageOpaque opaque = SpGistPageGetOpaque(page); OffsetNumber i, max = PageGetMaxOffsetNumber(page), @@ -615,7 +618,7 @@ spgvacuumpage(spgBulkDeleteState *bds, BlockNumber blkno) buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno, RBM_NORMAL, bds->info->strategy); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); - page = (Page) BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); if (PageIsNew(page)) { @@ -696,7 +699,7 @@ spgprocesspending(spgBulkDeleteState *bds) buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno, RBM_NORMAL, bds->info->strategy); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); - page = (Page) BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); if (PageIsNew(page) || SpGistPageIsDeleted(page)) { diff --git a/src/backend/access/spgist/spgxlog.c b/src/backend/access/spgist/spgxlog.c index 01a4e0f2528..b5fc2663f03 100644 --- a/src/backend/access/spgist/spgxlog.c +++ b/src/backend/access/spgist/spgxlog.c @@ -79,7 +79,7 @@ spgRedoCreateIndex(XLogReaderState *record) buffer = XLogInitBufferForRedo(record, 0); Assert(BufferGetBlockNumber(buffer) == SPGIST_METAPAGE_BLKNO); - page = (Page) BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); SpGistInitMetapage(page); PageSetLSN(page, lsn); MarkBufferDirty(buffer); @@ -88,7 +88,7 @@ spgRedoCreateIndex(XLogReaderState *record) buffer = XLogInitBufferForRedo(record, 1); Assert(BufferGetBlockNumber(buffer) == SPGIST_ROOT_BLKNO); SpGistInitBuffer(buffer, SPGIST_LEAF); - page = (Page) BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); PageSetLSN(page, lsn); MarkBufferDirty(buffer); UnlockReleaseBuffer(buffer); @@ -96,7 +96,7 @@ spgRedoCreateIndex(XLogReaderState *record) buffer = XLogInitBufferForRedo(record, 2); Assert(BufferGetBlockNumber(buffer) == SPGIST_NULL_BLKNO); SpGistInitBuffer(buffer, SPGIST_LEAF | SPGIST_NULLS); - page = (Page) BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); PageSetLSN(page, lsn); MarkBufferDirty(buffer); UnlockReleaseBuffer(buffer); @@ -136,7 +136,7 @@ spgRedoAddLeaf(XLogReaderState *record) if (action == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); /* insert new tuple */ if (xldata->offnumLeaf != xldata->offnumHeadLeaf) @@ -183,7 +183,7 @@ spgRedoAddLeaf(XLogReaderState *record) XLogRecGetBlockTag(record, 0, NULL, NULL, &blknoLeaf); - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); tuple = (SpGistInnerTuple) PageGetItem(page, PageGetItemId(page, xldata->offnumParent)); @@ -249,7 +249,7 @@ spgRedoMoveLeafs(XLogReaderState *record) { int i; - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); for (i = 0; i < nInsert; i++) { @@ -278,7 +278,7 @@ spgRedoMoveLeafs(XLogReaderState *record) /* Delete tuples from the source page, inserting a redirection pointer */ if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); spgPageIndexMultiDelete(&state, page, toDelete, xldata->nMoves, state.isBuild ? SPGIST_PLACEHOLDER : SPGIST_REDIRECT, @@ -297,7 +297,7 @@ spgRedoMoveLeafs(XLogReaderState *record) { SpGistInnerTuple tuple; - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); tuple = (SpGistInnerTuple) PageGetItem(page, PageGetItemId(page, xldata->offnumParent)); @@ -338,7 +338,7 @@ spgRedoAddNode(XLogReaderState *record) Assert(xldata->parentBlk == -1); if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); PageIndexTupleDelete(page, xldata->offnum); if (PageAddItem(page, (Item) innerTuple, innerTupleHdr.size, @@ -381,7 +381,7 @@ spgRedoAddNode(XLogReaderState *record) action = XLogReadBufferForRedo(record, 1, &buffer); if (action == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); addOrReplaceTuple(page, (Item) innerTuple, innerTupleHdr.size, xldata->offnumNew); @@ -410,7 +410,7 @@ spgRedoAddNode(XLogReaderState *record) { SpGistDeadTuple dt; - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); if (state.isBuild) dt = spgFormDeadTuple(&state, SPGIST_PLACEHOLDER, @@ -462,7 +462,7 @@ spgRedoAddNode(XLogReaderState *record) { SpGistInnerTuple parentTuple; - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); parentTuple = (SpGistInnerTuple) PageGetItem(page, PageGetItemId(page, xldata->offnumParent)); @@ -522,7 +522,7 @@ spgRedoSplitTuple(XLogReaderState *record) action = XLogReadBufferForRedo(record, 1, &buffer); if (action == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); addOrReplaceTuple(page, (Item) postfixTuple, postfixTupleHdr.size, xldata->offnumPostfix); @@ -537,7 +537,7 @@ spgRedoSplitTuple(XLogReaderState *record) /* now handle the original page */ if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); PageIndexTupleDelete(page, xldata->offnumPrefix); if (PageAddItem(page, (Item) prefixTuple, prefixTupleHdr.size, @@ -608,7 +608,7 @@ spgRedoPickSplit(XLogReaderState *record) { /* just re-init the source page */ srcBuffer = XLogInitBufferForRedo(record, 0); - srcPage = (Page) BufferGetPage(srcBuffer); + srcPage = BufferGetPage(srcBuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); SpGistInitBuffer(srcBuffer, SPGIST_LEAF | (xldata->storesNulls ? SPGIST_NULLS : 0)); @@ -625,7 +625,7 @@ spgRedoPickSplit(XLogReaderState *record) srcPage = NULL; if (XLogReadBufferForRedo(record, 0, &srcBuffer) == BLK_NEEDS_REDO) { - srcPage = BufferGetPage(srcBuffer); + srcPage = BufferGetPage(srcBuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); /* * We have it a bit easier here than in doPickSplit(), because we @@ -661,7 +661,8 @@ spgRedoPickSplit(XLogReaderState *record) { /* just re-init the dest page */ destBuffer = XLogInitBufferForRedo(record, 1); - destPage = (Page) BufferGetPage(destBuffer); + destPage = BufferGetPage(destBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); SpGistInitBuffer(destBuffer, SPGIST_LEAF | (xldata->storesNulls ? SPGIST_NULLS : 0)); @@ -674,7 +675,8 @@ spgRedoPickSplit(XLogReaderState *record) * full-page-image case, but for safety let's hold it till later. */ if (XLogReadBufferForRedo(record, 1, &destBuffer) == BLK_NEEDS_REDO) - destPage = (Page) BufferGetPage(destBuffer); + destPage = BufferGetPage(destBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); else destPage = NULL; /* don't do any page updates */ } @@ -722,7 +724,7 @@ spgRedoPickSplit(XLogReaderState *record) if (action == BLK_NEEDS_REDO) { - page = BufferGetPage(innerBuffer); + page = BufferGetPage(innerBuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); addOrReplaceTuple(page, (Item) innerTuple, innerTupleHdr.size, xldata->offnumInner); @@ -762,7 +764,8 @@ spgRedoPickSplit(XLogReaderState *record) { SpGistInnerTuple parent; - page = BufferGetPage(parentBuffer); + page = BufferGetPage(parentBuffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); parent = (SpGistInnerTuple) PageGetItem(page, PageGetItemId(page, xldata->offnumParent)); @@ -813,7 +816,7 @@ spgRedoVacuumLeaf(XLogReaderState *record) if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); spgPageIndexMultiDelete(&state, page, toDead, xldata->nDead, @@ -876,7 +879,7 @@ spgRedoVacuumRoot(XLogReaderState *record) if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); /* The tuple numbers are in order */ PageIndexMultiDelete(page, toDelete, xldata->nDelete); @@ -917,7 +920,8 @@ spgRedoVacuumRedirect(XLogReaderState *record) if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); SpGistPageOpaque opaque = SpGistPageGetOpaque(page); int i; |