aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gin/ginxlog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/gin/ginxlog.c')
-rw-r--r--src/backend/access/gin/ginxlog.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c
index bd4b0427f50..2d524539286 100644
--- a/src/backend/access/gin/ginxlog.c
+++ b/src/backend/access/gin/ginxlog.c
@@ -620,7 +620,11 @@ ginRedoInsertListPage(XLogRecPtr lsn, XLogRecord *record)
tupsize;
IndexTuple tuples = (IndexTuple) (XLogRecGetData(record) + sizeof(ginxlogInsertListPage));
- /* If we have a full-page image, restore it and we're done */
+ /*
+ * If we have a full-page image, restore it and we're done. (As the code
+ * stands, we never create full-page images, but we used to. Cope if
+ * we're reading WAL generated with an older minor version.)
+ */
if (record->xl_info & XLR_BKP_BLOCK(0))
{
(void) RestoreBackupBlock(lsn, record, 0, false, false);
@@ -654,6 +658,7 @@ ginRedoInsertListPage(XLogRecPtr lsn, XLogRecord *record)
elog(ERROR, "failed to add item to index page");
tuples = (IndexTuple) (((char *) tuples) + tupsize);
+ off++;
}
PageSetLSN(page, lsn);