diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/nbtree/nbtpage.c | 9 | ||||
-rw-r--r-- | src/backend/access/nbtree/nbtxlog.c | 10 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c index 53dff326808..d5db9aaa3a1 100644 --- a/src/backend/access/nbtree/nbtpage.c +++ b/src/backend/access/nbtree/nbtpage.c @@ -2058,6 +2058,7 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, BTMetaPageData *metad = NULL; ItemId itemid; Page page; + PageHeader header; BTPageOpaque opaque; bool rightsib_is_rightmost; int targetlevel; @@ -2327,6 +2328,14 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, opaque->btpo_flags |= BTP_DELETED; opaque->btpo.xact = ReadNewTransactionId(); + /* + * Remove the remaining tuples on the page. This keeps things simple for + * WAL consistency checking. + */ + header = (PageHeader) page; + header->pd_lower = SizeOfPageHeaderData; + header->pd_upper = header->pd_special; + /* And update the metapage, if needed */ if (BufferIsValid(metabuf)) { diff --git a/src/backend/access/nbtree/nbtxlog.c b/src/backend/access/nbtree/nbtxlog.c index 09d1b0e3419..be0fa450f31 100644 --- a/src/backend/access/nbtree/nbtxlog.c +++ b/src/backend/access/nbtree/nbtxlog.c @@ -1051,15 +1051,7 @@ btree_mask(char *pagedata, BlockNumber blkno) maskopaq = (BTPageOpaque) PageGetSpecialPointer(page); - if (P_ISDELETED(maskopaq)) - { - /* - * Mask page content on a DELETED page since it will be re-initialized - * during replay. See btree_xlog_unlink_page() for details. - */ - mask_page_content(page); - } - else if (P_ISLEAF(maskopaq)) + if (P_ISLEAF(maskopaq)) { /* * In btree leaf pages, it is possible to modify the LP_FLAGS without |