multiple target of VACUUM command

Started by Kyotaro Horiguchiabout 9 years ago3 messageshackers
Beta feature

Hackorum builds and tests every patch posted to the lists, not only commitfest submissions. This is Hackorum's own CI rather than the PostgreSQL project's, and it is still under testing - please report anything that looks wrong.

won't retrysuccessCI history

You can run a PostgreSQL built from this patch straight from Docker, with no checkout and no build:

docker run --rm -p 5432:5432 ghcr.io/hackorum-dev/postgres-patch:t37333
psql -h localhost -U postgres

Built from patchset v1 (message #1), July 27, 2026 at 10:25 PM.

Every patchset is also pushed to a branch of our PostgreSQL fork, so you can check out the same tree CI built. Without a PostgreSQL checkout:

git clone --branch t37333_1 https://github.com/hackorum-dev/postgres.git

In a checkout you already have, add the fork once:

git remote add hackorum https://github.com/hackorum-dev/postgres.git

then, for this patchset and every later one:

git fetch hackorum t37333_1 && git checkout t37333_1

Patchset v1 (message #1) is on t37333_1

Jump to latest
#1Kyotaro Horiguchi
horikyota.ntt@gmail.com

Hello,

I sometimes feel annoyed when trying to VACUUM multiple specific
tables.

postgres=# vacuum a, b;
ERROR: syntax error at or near ","
LINE 1: vacuum a, b;

This patch just allows multiple targets for VACUUM command.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

Attachments:

t37333_1
0001-Make-VaccumStmt-capable-to-have-multiple-table-param.patchtext/x-patch; charset=us-asciiDownload+64-19
0002-Allow-multiple-target-table-of-VACUUM.patchtext/x-patch; charset=us-asciiDownload+67-30
#2Michael Paquier
michael@paquier.xyz
In reply to: Kyotaro Horiguchi (#1)
Re: multiple target of VACUUM command

On Thu, Aug 31, 2017 at 9:53 PM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

I sometimes feel annoyed when trying to VACUUM multiple specific
tables.

postgres=# vacuum a, b;
ERROR: syntax error at or near ","
LINE 1: vacuum a, b;

This patch just allows multiple targets for VACUUM command.

There is a patch for the same feature by Nathan Bossart which is being
discussed already in this commit fest:
/messages/by-id/E061A8E3-5E3D-494D-94F0-E8A9B312BBFC@amazon.com
It had already a couple of rounds of reviews, and is getting close to
something that could be committed. There is still a pending bug
related to the use of RangeVar though with autovacuum.

Your approach is missing a couple of points. For example when
specifying multiple targets, we have decided to check for an ERROR at
the beginning of VACUUM, but we are issuing a WARNING if it goes
missing in the middle of processing a list, so your set of patches
would provide a frustrating experience. We have also discussed about
reshaping a bit the API of vacuum(), so I would recommend looking at
what has been already proposed if you are interested.
--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Kyotaro Horiguchi
horikyota.ntt@gmail.com
In reply to: Michael Paquier (#2)
Re: multiple target of VACUUM command

Ouch!

At Thu, 31 Aug 2017 23:09:20 +0900, Michael Paquier <michael.paquier@gmail.com> wrote in <CAB7nPqSB0k1ZyeXJ8iHdMQbeksYKB-psbiBvEfn--rTNmTreBw@mail.gmail.com>

On Thu, Aug 31, 2017 at 9:53 PM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

I sometimes feel annoyed when trying to VACUUM multiple specific
tables.

postgres=# vacuum a, b;
ERROR: syntax error at or near ","
LINE 1: vacuum a, b;

This patch just allows multiple targets for VACUUM command.

There is a patch for the same feature by Nathan Bossart which is being
discussed already in this commit fest:
/messages/by-id/E061A8E3-5E3D-494D-94F0-E8A9B312BBFC@amazon.com

Sorry for the duplication.

It had already a couple of rounds of reviews, and is getting close to
something that could be committed. There is still a pending bug
related to the use of RangeVar though with autovacuum.

Your approach is missing a couple of points. For example when
specifying multiple targets, we have decided to check for an ERROR at
the beginning of VACUUM, but we are issuing a WARNING if it goes
missing in the middle of processing a list, so your set of patches
would provide a frustrating experience. We have also discussed about
reshaping a bit the API of vacuum(), so I would recommend looking at
what has been already proposed if you are interested.

Thank you! I'll do that. I've mark this as "Rejected".

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers