diff options
Diffstat (limited to 'src/backend/access/transam')
-rw-r--r-- | src/backend/access/transam/generic_xlog.c | 20 | ||||
-rw-r--r-- | src/backend/access/transam/xloginsert.c | 8 | ||||
-rw-r--r-- | src/backend/access/transam/xlogutils.c | 8 |
3 files changed, 22 insertions, 14 deletions
diff --git a/src/backend/access/transam/generic_xlog.c b/src/backend/access/transam/generic_xlog.c index e62179d2fb5..4118d7bb08e 100644 --- a/src/backend/access/transam/generic_xlog.c +++ b/src/backend/access/transam/generic_xlog.c @@ -95,7 +95,8 @@ writeFragment(PageData *pageData, OffsetNumber offset, OffsetNumber length, static void writeDelta(PageData *pageData) { - Page page = BufferGetPage(pageData->buffer), + Page page = BufferGetPage(pageData->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), image = (Page) pageData->image; int i, fragmentBegin = -1, @@ -220,7 +221,8 @@ GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew) if (BufferIsInvalid(page->buffer)) { page->buffer = buffer; - memcpy(page->image, BufferGetPage(buffer), BLCKSZ); + memcpy(page->image, BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), BLCKSZ); page->dataLen = 0; page->fullImage = isNew; return (Page)page->image; @@ -295,8 +297,10 @@ GenericXLogFinish(GenericXLogState *state) /* Swap current and saved page image. */ memcpy(tmp, page->image, BLCKSZ); - memcpy(page->image, BufferGetPage(page->buffer), BLCKSZ); - memcpy(BufferGetPage(page->buffer), tmp, BLCKSZ); + memcpy(page->image, BufferGetPage(page->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), BLCKSZ); + memcpy(BufferGetPage(page->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), tmp, BLCKSZ); if (page->fullImage) { @@ -325,7 +329,8 @@ GenericXLogFinish(GenericXLogState *state) if (BufferIsInvalid(page->buffer)) continue; - PageSetLSN(BufferGetPage(page->buffer), lsn); + PageSetLSN(BufferGetPage(page->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), lsn); MarkBufferDirty(page->buffer); } END_CRIT_SECTION(); @@ -340,7 +345,8 @@ GenericXLogFinish(GenericXLogState *state) if (BufferIsInvalid(page->buffer)) continue; - memcpy(BufferGetPage(page->buffer), page->image, BLCKSZ); + memcpy(BufferGetPage(page->buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), page->image, BLCKSZ); MarkBufferDirty(page->buffer); } END_CRIT_SECTION(); @@ -413,7 +419,7 @@ generic_redo(XLogReaderState *record) Size blockDataSize; Page page; - page = BufferGetPage(buffers[block_id]); + page = BufferGetPage(buffers[block_id], NULL, NULL, BGP_NO_SNAPSHOT_TEST); blockData = XLogRecGetBlockData(record, block_id, &blockDataSize); applyPageRedo(page, blockData, blockDataSize); diff --git a/src/backend/access/transam/xloginsert.c b/src/backend/access/transam/xloginsert.c index c37003a24c2..1e336edfb59 100644 --- a/src/backend/access/transam/xloginsert.c +++ b/src/backend/access/transam/xloginsert.c @@ -228,7 +228,7 @@ XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags) regbuf = ®istered_buffers[block_id]; BufferGetTag(buffer, ®buf->rnode, ®buf->forkno, ®buf->block); - regbuf->page = BufferGetPage(buffer); + regbuf->page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); regbuf->flags = flags; regbuf->rdata_tail = (XLogRecData *) ®buf->rdata_head; regbuf->rdata_len = 0; @@ -825,7 +825,7 @@ XLogCheckBufferNeedsBackup(Buffer buffer) GetFullPageWriteInfo(&RedoRecPtr, &doPageWrites); - page = BufferGetPage(buffer); + page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); if (doPageWrites && PageGetLSN(page) <= RedoRecPtr) return true; /* buffer requires backup */ @@ -896,7 +896,7 @@ XLogSaveBufferForHint(Buffer buffer, bool buffer_std) if (buffer_std) { /* Assume we can omit data between pd_lower and pd_upper */ - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); uint16 lower = ((PageHeader) page)->pd_lower; uint16 upper = ((PageHeader) page)->pd_upper; @@ -973,7 +973,7 @@ log_newpage(RelFileNode *rnode, ForkNumber forkNum, BlockNumber blkno, XLogRecPtr log_newpage_buffer(Buffer buffer, bool page_std) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); RelFileNode rnode; ForkNumber forkNum; BlockNumber blkno; diff --git a/src/backend/access/transam/xlogutils.c b/src/backend/access/transam/xlogutils.c index f6ca2b95e51..c3213ac0b6f 100644 --- a/src/backend/access/transam/xlogutils.c +++ b/src/backend/access/transam/xlogutils.c @@ -358,7 +358,7 @@ XLogReadBufferForRedoExtended(XLogReaderState *record, { *buf = XLogReadBufferExtended(rnode, forknum, blkno, get_cleanup_lock ? RBM_ZERO_AND_CLEANUP_LOCK : RBM_ZERO_AND_LOCK); - page = BufferGetPage(*buf); + page = BufferGetPage(*buf, NULL, NULL, BGP_NO_SNAPSHOT_TEST); if (!RestoreBlockImage(record, block_id, page)) elog(ERROR, "failed to restore block image"); @@ -396,7 +396,8 @@ XLogReadBufferForRedoExtended(XLogReaderState *record, else LockBuffer(*buf, BUFFER_LOCK_EXCLUSIVE); } - if (lsn <= PageGetLSN(BufferGetPage(*buf))) + if (lsn <= PageGetLSN(BufferGetPage(*buf, NULL, NULL, + BGP_NO_SNAPSHOT_TEST))) return BLK_DONE; else return BLK_NEEDS_REDO; @@ -502,7 +503,8 @@ XLogReadBufferExtended(RelFileNode rnode, ForkNumber forknum, if (mode == RBM_NORMAL) { /* check that page has been initialized */ - Page page = (Page) BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); /* * We assume that PageIsNew is safe without a lock. During recovery, |