]> 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:49 +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 9dfb57e054be7b569649a087b368f6859cbe7fef..15b7eb024ae9141150b62b93a1e9da010f918cb9 100644 (file)
@@ -182,7 +182,6 @@ gistRedoPageUpdateRecord(XLogRecPtr lsn, XLogRecord *record)
                GistPageSetLeaf(page);
        }
 
-       GistPageGetOpaque(page)->rightlink = InvalidBlockNumber;
        PageSetLSN(page, lsn);
        MarkBufferDirty(buffer);
        UnlockReleaseBuffer(buffer);