OSDN Git Service

Have CLUSTER advance the table's relfrozenxid. The new frozen point is the
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 18 May 2007 23:19:42 +0000 (23:19 +0000)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 18 May 2007 23:19:42 +0000 (23:19 +0000)
commitb40776d22185423f57e32b9c9fcac2326fdb4fde
tree83d0340dbd1a8d98500dcda119a04c9d0f555ae1
parent2f1bf8248a15a7be88c7a6de202976584e53c1ad
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.
src/backend/commands/cluster.c
src/backend/commands/tablecmds.c
src/include/commands/cluster.h