From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
---|---|
To: | Simon Riggs <simon(dot)riggs(at)enterprisedb(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Allow single table VACUUM in transaction block |
Date: | 2022-10-27 20:07:42 |
Message-ID: | 20221027200742.GE16921@telsasoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Oct 27, 2022 at 10:31:31AM +0100, Simon Riggs wrote:
> Allows both ANALYZE and vacuum of toast tables, but not VACUUM FULL.
Maybe I misunderstood what you meant: you said "not VACUUM FULL", but
with your patch, that works:
postgres=# begin; VACUUM FULL pg_class; commit;
BEGIN
VACUUM
COMMIT
Actually, I've thought before that it was bit weird that CLUSTER can be
run within a transaction, but VACUUM FULL cannot (even though it does a
CLUSTER behind the scenes). VACUUM FULL can process multiple relations,
whereas CLUSTER can't, but it seems nice to allow vacuum full for the
case of a single relation.
I haven't checked the rest of the patch, but +1 for allowing VACUUM FULL
within a user txn.
Maybe the error message needs to be qualified "...when multiple
relations are specified".
ERROR: VACUUM cannot run inside a transaction block
--
Justin
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2022-10-27 20:26:00 | Re: Have nodeSort.c use datum sorts single-value byref types |
Previous Message | Alvaro Herrera | 2022-10-27 17:13:46 | Re: Reducing planning time on tables with many indexes |