On Mon, Feb 07, 2005 at 07:16:41PM +0200, Hannu Krosing wrote: > If all the changes it does to internal data storage can be rolled back, > then I can't see how VACUUM FULL can work at all without requiring 2x > the filesize for the ROLLBACK.
I think the point is that the table is still consistent if the system crashes while vacuum is running. For the internal details, see Xvac in the HeapTupleHeader struct. > Also, why must it be run outside of transaction block if it can be > rollbacked ? A vacuum actually uses several transactions, so it wouldn't work as the user would expect if run in a transaction. The first one is committed rather early and new ones are opened and closed. (One per table, IIRC.) -- Alvaro Herrera (<[EMAIL PROTECTED]>) "There was no reply" (Kernel Traffic) ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org