diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index 54a275318253c43171f82181c7aa18d3d55a08a6..b1c411a0b9665366d00c208437cec5e629123f6c 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -861,6 +861,12 @@ copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex, bool verbose, if (TransactionIdPrecedes(FreezeXid, OldHeap->rd_rel->relfrozenxid)) FreezeXid = OldHeap->rd_rel->relfrozenxid; + /* + * MultiXactCutoff, similarly, shouldn't go backwards either. + */ + if (MultiXactIdPrecedes(MultiXactCutoff, OldHeap->rd_rel->relminmxid)) + MultiXactCutoff = OldHeap->rd_rel->relminmxid; + /* return selected values to caller */ *pFreezeXid = FreezeXid; *pCutoffMulti = MultiXactCutoff;