summaryrefslogtreecommitdiff
path: root/src/backend/access/gist
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/gist')
-rw-r--r--src/backend/access/gist/gistutil.c8
-rw-r--r--src/backend/access/gist/gistxlog.c10
2 files changed, 8 insertions, 10 deletions
diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c
index 765329bbcd4..bfda7fbe3d5 100644
--- a/src/backend/access/gist/gistutil.c
+++ b/src/backend/access/gist/gistutil.c
@@ -891,15 +891,13 @@ gistPageRecyclable(Page page)
* As long as that can happen, we must keep the deleted page around as
* a tombstone.
*
- * Compare the deletion XID with RecentGlobalXmin. If deleteXid <
- * RecentGlobalXmin, then no scan that's still in progress could have
+ * For that check if the deletion XID could still be visible to
+ * anyone. If not, then no scan that's still in progress could have
* seen its downlink, and we can recycle it.
*/
FullTransactionId deletexid_full = GistPageGetDeleteXid(page);
- FullTransactionId recentxmin_full = GetFullRecentGlobalXmin();
- if (FullTransactionIdPrecedes(deletexid_full, recentxmin_full))
- return true;
+ return GlobalVisIsRemovableFullXid(NULL, deletexid_full);
}
return false;
}
diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c
index 7b5d1e98b70..a63b05388c5 100644
--- a/src/backend/access/gist/gistxlog.c
+++ b/src/backend/access/gist/gistxlog.c
@@ -387,11 +387,11 @@ gistRedoPageReuse(XLogReaderState *record)
* PAGE_REUSE records exist to provide a conflict point when we reuse
* pages in the index via the FSM. That's all they do though.
*
- * latestRemovedXid was the page's deleteXid. The deleteXid <
- * RecentGlobalXmin test in gistPageRecyclable() conceptually mirrors the
- * pgxact->xmin > limitXmin test in GetConflictingVirtualXIDs().
- * Consequently, one XID value achieves the same exclusion effect on
- * primary and standby.
+ * latestRemovedXid was the page's deleteXid. The
+ * GlobalVisIsRemovableFullXid(deleteXid) test in gistPageRecyclable()
+ * conceptually mirrors the pgxact->xmin > limitXmin test in
+ * GetConflictingVirtualXIDs(). Consequently, one XID value achieves the
+ * same exclusion effect on primary and standby.
*/
if (InHotStandby)
{