Skip to content

Commit e86cfc4

Browse files
committed
Don't allow relminmxid to go backwards during VACUUM FULL
We were allowing a table's pg_class.relminmxid value to move backwards when heaps were swapped by VACUUM FULL or CLUSTER. There is a similar protection against relfrozenxid going backwards, which we neglected to clone when the multixact stuff was rejiggered by commit 0ac5ad5. Backpatch to 9.3, where relminmxid was introduced. As reported by Heikki in http://www.postgresql.org/message-id/52401AEA.9000608@vmware.com
1 parent 5c53844 commit e86cfc4

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/backend/commands/cluster.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,12 @@ copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex,
873873
if (TransactionIdPrecedes(FreezeXid, OldHeap->rd_rel->relfrozenxid))
874874
FreezeXid = OldHeap->rd_rel->relfrozenxid;
875875

876+
/*
877+
* MultiXactCutoff, similarly, shouldn't go backwards either.
878+
*/
879+
if (MultiXactIdPrecedes(MultiXactCutoff, OldHeap->rd_rel->relminmxid))
880+
MultiXactCutoff = OldHeap->rd_rel->relminmxid;
881+
876882
/* return selected values to caller */
877883
*pFreezeXid = FreezeXid;
878884
*pCutoffMulti = MultiXactCutoff;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy