]> 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:52:07 +0000 (14:52 +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 e7c3e2dd7525167abf3ae02c491db87717241205..d044f184848ce83be8d6d17e4942fd2a40312013 100644 (file)
@@ -253,7 +253,6 @@ gistRedoPageUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot)
                 */
                GistPageSetLeaf(page);
 
-       GistPageGetOpaque(page)->rightlink = InvalidBlockNumber;
        PageSetLSN(page, lsn);
        PageSetTLI(page, ThisTimeLineID);
        MarkBufferDirty(buffer);