]> granicus.if.org Git - postgresql/commitdiff
Fix hot standby bug with GiST scans.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 8 Apr 2014 11:47:24 +0000 (14:47 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 8 Apr 2014 11:51:40 +0000 (14:51 +0300)
Don't reset the rightlink of a page when replaying a page update record.
This was a leftover from pre-hot standby days, when it was not possible to
have scans concurrent with WAL replay. Resetting the right-link was not
necessary back then either, but it was done for the sake of tidiness. But
with hot standby, it's wrong, because a concurrent scan might still need it.

Backpatch all versions with hot standby, 9.0 and above.

src/backend/access/gist/gistxlog.c

index 7cc64aeb490c626650b043afd2366648cb1eee9d..e12b9c66dc136a7f75bb278319dc0696e4e8c05e 100644 (file)
@@ -182,7 +182,6 @@ gistRedoPageUpdateRecord(XLogRecPtr lsn, XLogRecord *record)
                GistPageSetLeaf(page);
        }
 
-       GistPageGetOpaque(page)->rightlink = InvalidBlockNumber;
        PageSetLSN(page, lsn);
        MarkBufferDirty(buffer);
        UnlockReleaseBuffer(buffer);