Here is a patch to support "rewrite" version of VACUUM FULL.
It was called "VACUUM REWRITE" in the past disucussin,
but I choose the following syntax for now:
VACUUM ( FULL [ INPLACE | REPLACE ] ) [ table_name ]
The reason is to contrast the new REPLACE behavior with the old INPLACE
behavior. I cannot find any good terms of opposite meaning of REWRITE.
The new version works like as CLUSTER USING ctid or rewriting in
ALTER TABLE. It must be faster than them if we have many dead tuples
and are not interested in physical order of tuples.
We still need traditional VACUUM FULL behavior for system catalog because
we cannot change relfilenode for them. Also, VACUUM FULL REPLACE is not
always better than traditional VACUUM FULL; the new version requires
additional disk space and might be slower if we have a few dead tuples.
"VACUUM FULL" and "VACUUM (FULL)" are synonyms for "VACUUM (FULL REPLACE)",
but if the target table is s system catalog, instead "FULL INPLACE" is
If this approach is reasonable, I'll go for other supplemental parts.
(documentations, vacuumdb, etc.)
NTT Open Source Software Center
In response to
pgsql-hackers by date
|Next:||From: Peter Eisentraut||Date: 2009-10-27 06:43:39|
|Subject: Re: Unicode UTF-8 table formatting for psql text output|
|Previous:||From: Greg Smith||Date: 2009-10-27 04:38:27|
|Subject: Re: Parsing config files in a directory |