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

Nathan Bossart <bossartn@amazon.com>

From: "Bossart, Nathan" <bossartn@amazon.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Michael Paquier <michael.paquier@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-08-31T15:25:58Z
Lists: pgsql-hackers

Attachments

On 8/31/17, 2:24 AM, "Masahiko Sawada" <sawada.mshk@gmail.com> wrote:
> I reviewed these patches and found a issue.

Thanks for reviewing.

> autovacuum worker seems not to work fine. I got an error message;
>
> ERROR:  unrecognized node type: 0
> CONTEXT:  automatic analyze of table "postgres.public.hoge"
>
> I think we should set T_RangeVar to rangevar.type in
> autovacuum_do_vac_analyze function.

Yes, it looks like the NodeTag is not getting set on the RangeVar.
I went ahead and switched this to makeRangeVar(...) instead of
keeping it manually allocated on the stack.  Autovacuum seems to be
working as usual now.

> Also, there is a small typo in dedupe_vacuum_relations_v2.patch.
>
> +                       /* if already procesed or not equal, skip */
> +                       if (list_member_int(duplicates, i) ||
> relation->oid != nth_rel->oid)
> +                               continue;
>
> s/procesed/processed/g

This should be fixed in v3.

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.