aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-01-24 19:08:52 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-01-24 19:10:10 +0200
commitd150ff57812ae01a2f78a55f33a46f9b7febf933 (patch)
treefbc87b71c80badc907c04e2ac7c2a86ce64bae4c
parenta8f374849fe2e2fcd62bbba8be85ccf030c31683 (diff)
downloadpostgresql-d150ff57812ae01a2f78a55f33a46f9b7febf933.tar.gz
postgresql-d150ff57812ae01a2f78a55f33a46f9b7febf933.zip
Reset unused fields in GIN data leaf page footer.
The maxoff field is not used in the new, compressed page format. Let's reset it when converting an old-format page to the new format. The code won't care either way, but this makes it possible to use the field for something else in the future.
-rw-r--r--src/backend/access/gin/gindatapage.c5
-rw-r--r--src/backend/access/gin/ginxlog.c1
2 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
index d65979b0e46..91934f0f900 100644
--- a/src/backend/access/gin/gindatapage.c
+++ b/src/backend/access/gin/gindatapage.c
@@ -817,7 +817,10 @@ dataPlaceToPageLeafRecompress(Buffer buf, disassembledLeaf *leaf,
}
Assert(newsize <= GinDataLeafMaxContentSize);
GinDataLeafPageSetPostingListSize(page, newsize);
- GinPageSetCompressed(page); /* in case it was in pre-9.4 format before */
+
+ /* Reset these in case the page was in pre-9.4 format before */
+ GinPageSetCompressed(page);
+ GinPageGetOpaque(page)->maxoff = InvalidOffsetNumber;
/* Put WAL data */
recompress_xlog.length = (uint16) newsize;
diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c
index 9a978ce2bdb..3e86590ca0d 100644
--- a/src/backend/access/gin/ginxlog.c
+++ b/src/backend/access/gin/ginxlog.c
@@ -153,6 +153,7 @@ ginRedoRecompress(Page page, ginxlogRecompressDataLeaf *data)
memcpy(segment, data->newdata, data->length - data->unmodifiedsize);
GinDataLeafPageSetPostingListSize(page, data->length);
GinPageSetCompressed(page);
+ GinPageGetOpaque(page)->maxoff = InvalidOffsetNumber;
}
static void