diff options
Diffstat (limited to 'src/backend/access/nbtree/nbtxlog.c')
-rw-r--r-- | src/backend/access/nbtree/nbtxlog.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/backend/access/nbtree/nbtxlog.c b/src/backend/access/nbtree/nbtxlog.c index e1c37491485..2e5202c2d6e 100644 --- a/src/backend/access/nbtree/nbtxlog.c +++ b/src/backend/access/nbtree/nbtxlog.c @@ -449,16 +449,11 @@ btree_xlog_delete(XLogReaderState *record) */ if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) { - page = (Page) BufferGetPage(buffer); - - if (XLogRecGetDataLen(record) > SizeOfBtreeDelete) - { - OffsetNumber *unused; + char *ptr = XLogRecGetBlockData(record, 0, NULL); - unused = (OffsetNumber *) ((char *) xlrec + SizeOfBtreeDelete); + page = (Page) BufferGetPage(buffer); - PageIndexMultiDelete(page, unused, xlrec->nitems); - } + PageIndexMultiDelete(page, (OffsetNumber *) ptr, xlrec->ndeleted); /* Mark the page as not containing any LP_DEAD items */ opaque = (BTPageOpaque) PageGetSpecialPointer(page); |