|
11 | 11 | *
|
12 | 12 | *
|
13 | 13 | * IDENTIFICATION
|
14 |
| - * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.167 2008/01/02 23:34:42 tgl Exp $ |
| 14 | + * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.168 2008/01/15 21:20:28 tgl Exp $ |
15 | 15 | *
|
16 | 16 | *-------------------------------------------------------------------------
|
17 | 17 | */
|
@@ -751,6 +751,13 @@ copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
|
751 | 751 | vacuum_set_xid_limits(-1,OldHeap->rd_rel->relisshared,
|
752 | 752 | &OldestXmin,&FreezeXid);
|
753 | 753 |
|
| 754 | +/* |
| 755 | + * FreezeXid will become the table's new relfrozenxid, and that mustn't |
| 756 | + * go backwards, so take the max. |
| 757 | + */ |
| 758 | +if (TransactionIdPrecedes(FreezeXid,OldHeap->rd_rel->relfrozenxid)) |
| 759 | +FreezeXid=OldHeap->rd_rel->relfrozenxid; |
| 760 | + |
754 | 761 | /* Initialize the rewrite operation */
|
755 | 762 | rwstate=begin_heap_rewrite(NewHeap,OldestXmin,FreezeXid,use_wal);
|
756 | 763 |
|
|