Tino Schwarze <postgresql@tisc.de> writes:
>> Maybe we should remove the code and make
>> VACUUM FULL do the table-rewrite thing.
> What do you mean with "the table-rewrite thing", exactly?
Like CLUSTER, except not bothering to sort the rows: just seqscan the
table, enter all live tuples into a new relation file, then rebuild
the indexes from scratch.
The only real disadvantages I can see for this implementation are
that
(1) it won't work on those system catalogs whose relfilenode can't
be reassigned (pg_class and shared catalogs, at least).
(2) it requires extra disk space during the rebuild; although the
argument that VACUUM FULL works in-place is kinda shaky when you
consider its effect on indexes.
regards, tom lane