diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2019-07-24 20:24:07 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2019-07-24 20:25:22 +0300 |
commit | fb5344c969af77bb78bc2a643fb75b9f8fea72dd (patch) | |
tree | bd4e4af8e04137ff40c32024ea55b53031852b62 /src/include/access/gist_private.h | |
parent | e2e992c93145cfc0e3563fb84efd25b390a84bb9 (diff) | |
download | postgresql-fb5344c969af77bb78bc2a643fb75b9f8fea72dd.tar.gz postgresql-fb5344c969af77bb78bc2a643fb75b9f8fea72dd.zip |
Use full 64-bit XID for checking if a deleted GiST page is old enough.
Otherwise, after a deleted page gets even older, it becomes unrecyclable
again. B-tree has the same problem, and has had since time immemorial,
but let's at least fix this in GiST, where this is new.
Backpatch to v12, where GiST page deletion was introduced.
Reviewed-by: Andrey Borodin
Discussion: https://www.postgresql.org/message-id/835A15A5-F1B4-4446-A711-BF48357EB602%40yandex-team.ru
Diffstat (limited to 'src/include/access/gist_private.h')
-rw-r--r-- | src/include/access/gist_private.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h index f80694bf9a8..f84ea71ecba 100644 --- a/src/include/access/gist_private.h +++ b/src/include/access/gist_private.h @@ -426,11 +426,11 @@ extern SplitedPageLayout *gistSplit(Relation r, Page page, IndexTuple *itup, /* gistxlog.c */ extern XLogRecPtr gistXLogPageDelete(Buffer buffer, - TransactionId xid, Buffer parentBuffer, + FullTransactionId xid, Buffer parentBuffer, OffsetNumber downlinkOffset); extern void gistXLogPageReuse(Relation rel, BlockNumber blkno, - TransactionId latestRemovedXid); + FullTransactionId latestRemovedXid); extern XLogRecPtr gistXLogUpdate(Buffer buffer, OffsetNumber *todelete, int ntodelete, |