diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index f203bb594c..0683f42c25 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -1645,7 +1645,6 @@ gistprunepage(Relation rel, Page page, Buffer buffer, Relation heapRel) int ndeletable = 0; OffsetNumber offnum, maxoff; - TransactionId latestRemovedXid = InvalidTransactionId; Assert(GistPageIsLeaf(page)); @@ -1664,13 +1663,15 @@ gistprunepage(Relation rel, Page page, Buffer buffer, Relation heapRel) deletable[ndeletable++] = offnum; } - if (XLogStandbyInfoActive() && RelationNeedsWAL(rel)) - latestRemovedXid = - index_compute_xid_horizon_for_tuples(rel, heapRel, buffer, - deletable, ndeletable); - if (ndeletable > 0) { + TransactionId latestRemovedXid = InvalidTransactionId; + + if (XLogStandbyInfoActive() && RelationNeedsWAL(rel)) + latestRemovedXid = + index_compute_xid_horizon_for_tuples(rel, heapRel, buffer, + deletable, ndeletable); + START_CRIT_SECTION(); PageIndexMultiDelete(page, deletable, ndeletable); diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index c911c705ba..1c3e937c61 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -301,6 +301,8 @@ index_compute_xid_horizon_for_tuples(Relation irel, Page ipage = BufferGetPage(ibuf); IndexTuple itup; + Assert(nitems > 0); + delstate.bottomup = false; delstate.bottomupfreespace = 0; delstate.ndeltids = 0;