0003-Set-pd_lower-correctly-in-the-SP-GiST-index-metapage_v2.patch

text/plain

Filename: 0003-Set-pd_lower-correctly-in-the-SP-GiST-index-metapage_v2.patch
Type: text/plain
Part: 2
Message: Re: Setting pd_lower in GIN metapage

Patch

Format: format-patch
Series: patch v2-0003
Subject: Set pd_lower correctly in the SP-GiST index metapage
File+
src/backend/access/spgist/spgutils.c 7 0
src/backend/access/spgist/spgxlog.c 1 6
From 32c5f42c17e9fae57ed12c2326470de5e20f964c Mon Sep 17 00:00:00 2001
From: amit <amitlangote09@gmail.com>
Date: Mon, 26 Jun 2017 15:23:34 +0900
Subject: [PATCH 3/3] Set pd_lower correctly in the SP-GiST index metapage

---
 src/backend/access/spgist/spgutils.c | 7 +++++++
 src/backend/access/spgist/spgxlog.c  | 7 +------
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c
index 8656af453c..f031c8c68c 100644
--- a/src/backend/access/spgist/spgutils.c
+++ b/src/backend/access/spgist/spgutils.c
@@ -534,6 +534,13 @@ SpGistInitMetapage(Page page)
 	/* initialize last-used-page cache to empty */
 	for (i = 0; i < SPGIST_CACHED_PAGES; i++)
 		metadata->lastUsedPages.cachedPage[i].blkno = InvalidBlockNumber;
+
+	/*
+	 * Set pd_lower just past the end of the metadata.  This is to log full
+	 * page image of metapage in xloginsert.c.
+	 */
+	((PageHeader) page)->pd_lower =
+		((char *) metadata + sizeof(SpGistMetaPageData)) - (char *) page;
 }
 
 /*
diff --git a/src/backend/access/spgist/spgxlog.c b/src/backend/access/spgist/spgxlog.c
index c440d21715..9ea3fd8e8d 100644
--- a/src/backend/access/spgist/spgxlog.c
+++ b/src/backend/access/spgist/spgxlog.c
@@ -1038,10 +1038,5 @@ spg_mask(char *pagedata, BlockNumber blkno)
 
 	mask_page_hint_bits(page);
 
-	/*
-	 * Any SpGist page other than meta contains unused space which needs to be
-	 * masked.
-	 */
-	if (!SpGistPageIsMeta(page))
-		mask_unused_space(page);
+	mask_unused_space(page);
 }
-- 
2.11.0