aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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