}
/* Track newest xmin on page. */
- if (TransactionIdFollows(xmin, prunestate->visibility_cutoff_xid))
+ if (TransactionIdFollows(xmin, prunestate->visibility_cutoff_xid) &&
+ TransactionIdIsNormal(xmin))
prunestate->visibility_cutoff_xid = xmin;
}
break;
* because visibility_cutoff_xid will be logged by our caller in a
* moment.
*/
- Assert(cutoff == FrozenTransactionId ||
+ Assert(!TransactionIdIsValid(cutoff) ||
cutoff == prunestate->visibility_cutoff_xid);
}
#endif
}
/* Track newest xmin on page. */
- if (TransactionIdFollows(xmin, *visibility_cutoff_xid))
+ if (TransactionIdFollows(xmin, *visibility_cutoff_xid) &&
+ TransactionIdIsNormal(xmin))
*visibility_cutoff_xid = xmin;
/* Check whether this tuple is already frozen or not */
if (!TransactionIdIsValid(snapshotConflictHorizon))
return;
+ Assert(TransactionIdIsNormal(snapshotConflictHorizon));
backends = GetConflictingVirtualXIDs(snapshotConflictHorizon,
locator.dbOid);
ResolveRecoveryConflictWithVirtualXIDs(backends,