diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 5353b6ab0b..42d2174dd4 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -853,6 +853,7 @@ bool TransactionIdIsCurrentTransactionId(TransactionId xid) { TransactionState s; + TransactionId topxid = GetTopTransactionIdIfAny(); /* * We always say that BootstrapTransactionId is "not my transaction ID" @@ -867,10 +868,10 @@ TransactionIdIsCurrentTransactionId(TransactionId xid) * not my transaction ID, so we can just return "false" immediately for * any non-normal XID. */ - if (!TransactionIdIsNormal(xid)) + if (!TransactionIdIsNormal(xid) || !TransactionIdIsNormal(topxid)) return false; - if (TransactionIdEquals(xid, GetTopTransactionIdIfAny())) + if (TransactionIdEquals(xid, topxid)) return true; /*