Content-Length: 291063 | pFad | http://github.com/postgrespro/postgres/commit/402822246866e1094d35a617775a65b4be93d322

9F Fix BRIN xlog replay · postgrespro/postgres@4028222 · GitHub
Skip to content

Commit 4028222

Browse files
committed
Fix BRIN xlog replay
There was a confusion about which block number to use when storing an item's pointer in the revmap -- the revmap page's blkno was being used, not the data page's blkno. Spotted-by: Jeff Janes
1 parent 7c02d48 commit 4028222

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/backend/access/brin/brin_xlog.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ brin_xlog_insert_update(XLogReaderState *record,
4747
{
4848
XLogRecPtr lsn = record->EndRecPtr;
4949
Buffer buffer;
50+
BlockNumber regpgno;
5051
Page page;
5152
XLogRedoAction action;
5253

@@ -66,6 +67,9 @@ brin_xlog_insert_update(XLogReaderState *record,
6667
action = XLogReadBufferForRedo(record, 0, &buffer);
6768
}
6869

70+
/* need this page's blkno to store in revmap */
71+
regpgno = BufferGetBlockNumber(buffer);
72+
6973
/* insert the index item into the page */
7074
if (action == BLK_NEEDS_REDO)
7175
{
@@ -97,9 +101,8 @@ brin_xlog_insert_update(XLogReaderState *record,
97101
if (action == BLK_NEEDS_REDO)
98102
{
99103
ItemPointerData tid;
100-
BlockNumber blkno = BufferGetBlockNumber(buffer);
101104

102-
ItemPointerSet(&tid, blkno, xlrec->offnum);
105+
ItemPointerSet(&tid, regpgno, xlrec->offnum);
103106
page = (Page) BufferGetPage(buffer);
104107

105108
brinSetHeapBlockItemptr(buffer, xlrec->pagesPerRange, xlrec->heapBlk,

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/402822246866e1094d35a617775a65b4be93d322

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy