aboutsummaryrefslogtreecommitdiff
path: root/src/include/commands/cluster.h
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2007-05-18 23:19:42 +0000
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2007-05-18 23:19:42 +0000
commitb40776d22185423f57e32b9c9fcac2326fdb4fde (patch)
tree83d0340dbd1a8d98500dcda119a04c9d0f555ae1 /src/include/commands/cluster.h
parent2f1bf8248a15a7be88c7a6de202976584e53c1ad (diff)
downloadpostgresql-b40776d22185423f57e32b9c9fcac2326fdb4fde.tar.gz
postgresql-b40776d22185423f57e32b9c9fcac2326fdb4fde.zip
Have CLUSTER advance the table's relfrozenxid. The new frozen point is the
FreezeXid introduced in a recent commit, so there isn't any data loss in this approach. Doing it causes ALTER TABLE (or rather, the forms of it that cause a full table rewrite) to be affected as well. In this case, the frozen point is RecentXmin, because after the rewrite all the tuples are relabeled with the rewriting transaction's Xid. TOAST tables are fixed automatically as well, as fallout of the way they were already being handled in the respective code paths. With this patch, there is no longer need to VACUUM tables for Xid wraparound purposes that have been cleaned up via TRUNCATE or CLUSTER.
Diffstat (limited to 'src/include/commands/cluster.h')
-rw-r--r--src/include/commands/cluster.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/commands/cluster.h b/src/include/commands/cluster.h
index 0ed1e231388..c6e3e7d1bed 100644
--- a/src/include/commands/cluster.h
+++ b/src/include/commands/cluster.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994-5, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/cluster.h,v 1.32 2007/03/13 00:33:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/cluster.h,v 1.33 2007/05/18 23:19:42 alvherre Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,6 +24,6 @@ extern void check_index_is_clusterable(Relation OldHeap, Oid indexOid,
extern void mark_index_clustered(Relation rel, Oid indexOid);
extern Oid make_new_heap(Oid OIDOldHeap, const char *NewName,
Oid NewTableSpace);
-extern void swap_relation_files(Oid r1, Oid r2);
+extern void swap_relation_files(Oid r1, Oid r2, TransactionId frozenXid);
#endif /* CLUSTER_H */