Re: [Proposal] Allow users to specify multiple tables in VACUUM commands

Nathan Bossart <bossartn@amazon.com>

From: "Bossart, Nathan" <bossartn@amazon.com>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2017-09-07T00:46:08Z
Lists: pgsql-hackers

Attachments

On 9/5/17, 5:53 PM, "Michael Paquier" <michael.paquier@gmail.com> wrote:
> On Wed, Sep 6, 2017 at 2:36 AM, Bossart, Nathan <bossartn@amazon.com> wrote:
>> On 9/4/17, 8:16 PM, "Michael Paquier" <michael.paquier@gmail.com> wrote:
>>> So I would tend to think that the same column specified multiple times
>>> should cause an error, and that we could let VACUUM run work N times
>>> on a relation if it is specified this much. This feels more natural,
>>> at least to me, and it keeps the code simple.
>>
>> I think that is a reasonable approach.  Another option I was thinking
>> about was to de-duplicate only the individual column lists.  This
>> alternative approach might be a bit more user-friendly, but I am
>> beginning to agree with you that perhaps we should not try to infer
>> the intent of the user in these "duplicate" scenarios.
>>
>> I'll work on converting the existing de-duplication patch into
>> something more like what you suggested.
>
> Cool. I'll look at anything you have.

I've attached v1 of this patch.  I think we might want to refactor the
code for retrieving the relation name from a RangeVar, but it would
probably be better to do that in a separate patch.

Nathan

Commits

  1. Allow multiple tables to be specified in one VACUUM or ANALYZE command.

  2. Give a better error for duplicate entries in VACUUM/ANALYZE column list.

  3. Reject ANALYZE commands during VACUUM FULL or another ANALYZE.