aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/transam')
-rw-r--r--src/backend/access/transam/generic_xlog.c20
-rw-r--r--src/backend/access/transam/xloginsert.c8
-rw-r--r--src/backend/access/transam/xlogutils.c8
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 = &registered_buffers[block_id];
BufferGetTag(buffer, &regbuf->rnode, &regbuf->forkno, &regbuf->block);
- regbuf->page = BufferGetPage(buffer);
+ regbuf->page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST);
regbuf->flags = flags;
regbuf->rdata_tail = (XLogRecData *) &regbuf->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,