Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4028222

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

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
XLogRecPtrlsn=record->EndRecPtr;
4949
Bufferbuffer;
50+
BlockNumberregpgno;
5051
Pagepage;
5152
XLogRedoActionaction;
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
ItemPointerDatatid;
100-
BlockNumberblkno=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)

[8]ページ先頭

©2009-2025 Movatter.jp