Michael Guerin <guerin@rentec.com> writes:
> What happens when a vacuum full is canceled? Is any of the completed
> work retained, or is everything lost?
You lose it all; in fact you are worse off than when you started,
because there is now *more* work for the next vacuum to do --- it
has to clean up the dead tuples that the canceled vacuum created
(in the process of moving data around) and never got to commit.
However, this is on a per-table basis --- if you are running a
database-wide vacuum full, it commits after each table, so the
already-processed tables are done.
regards, tom lane