Hannu Krosing <hannu(at)tm(dot)ee> writes:
> As VACUUM is not something that can be rolled back, could we not make it
> run completely outside transactions.
No, because it has to be able to hold a table-level lock on the target
table. Besides, where did you get the idea that it can't be rolled back?
The VACUUM FULL case, at least, has to go through huge pushups to be
sure it is rollback-safe.
regards, tom lane