@ -47,6 +47,7 @@ brin_xlog_insert_update(XLogReaderState *record,
{
{
XLogRecPtr lsn = record - > EndRecPtr ;
XLogRecPtr lsn = record - > EndRecPtr ;
Buffer buffer ;
Buffer buffer ;
BlockNumber regpgno ;
Page page ;
Page page ;
XLogRedoAction action ;
XLogRedoAction action ;
@ -66,6 +67,9 @@ brin_xlog_insert_update(XLogReaderState *record,
action = XLogReadBufferForRedo ( record , 0 , & buffer ) ;
action = XLogReadBufferForRedo ( record , 0 , & buffer ) ;
}
}
/* need this page's blkno to store in revmap */
regpgno = BufferGetBlockNumber ( buffer ) ;
/* insert the index item into the page */
/* insert the index item into the page */
if ( action = = BLK_NEEDS_REDO )
if ( action = = BLK_NEEDS_REDO )
{
{
@ -97,9 +101,8 @@ brin_xlog_insert_update(XLogReaderState *record,
if ( action = = BLK_NEEDS_REDO )
if ( action = = BLK_NEEDS_REDO )
{
{
ItemPointerData tid ;
ItemPointerData tid ;
BlockNumber blkno = BufferGetBlockNumber ( buffer ) ;
ItemPointerSet ( & tid , blk no, xlrec - > offnum ) ;
ItemPointerSet ( & tid , regpg no, xlrec - > offnum ) ;
page = ( Page ) BufferGetPage ( buffer ) ;
page = ( Page ) BufferGetPage ( buffer ) ;
brinSetHeapBlockItemptr ( buffer , xlrec - > pagesPerRange , xlrec - > heapBlk ,
brinSetHeapBlockItemptr ( buffer , xlrec - > pagesPerRange , xlrec - > heapBlk ,