aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/nbtree/nbtpage.c9
-rw-r--r--src/backend/access/nbtree/nbtxlog.c10
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