summaryrefslogtreecommitdiff
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 bfd32241443..6b781c5d356 100644
--- a/src/backend/access/gin/ginxlog.c
+++ b/src/backend/access/gin/ginxlog.c
@@ -621,7 +621,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);
@@ -655,6 +659,7 @@ ginRedoInsertListPage(XLogRecPtr lsn, XLogRecord *record)
elog(ERROR, "failed to add item to index page");
tuples = (IndexTuple) (((char *) tuples) + tupsize);
+ off++;
}
PageSetLSN(page, lsn);