Fix hot standby bug with GiST scans.
authorHeikki Linnakangas
Tue, 8 Apr 2014 11:47:24 +0000 (14:47 +0300)
committerHeikki Linnakangas
Tue, 8 Apr 2014 11:51:56 +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 8cdd78c83aaf91c7191f0b4673babe97c11702ff..c577422580638000d6d92014d19c6cff271beefe 100644 (file)
@@ -183,7 +183,6 @@ gistRedoPageUpdateRecord(XLogRecPtr lsn, XLogRecord *record)
        GistPageSetLeaf(page);
    }
 
-   GistPageGetOpaque(page)->rightlink = InvalidBlockNumber;
    PageSetLSN(page, lsn);
    PageSetTLI(page, ThisTimeLineID);
    MarkBufferDirty(buffer);