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

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: "Bossart, Nathan" <bossartn(at)amazon(dot)com>
Cc: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: [Proposal] Allow users to specify multiple tables in VACUUM commands
Date: 2017-08-31 07:23:40
Message-ID: CAD21AoCGOi0=Qmdcn2U6Xigy2U2iZpeZUHLqYEWWv-pprnFoJw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Aug 31, 2017 at 10:52 AM, Bossart, Nathan <bossartn(at)amazon(dot)com> wrote:
> On 8/30/17, 5:37 PM, "Michael Paquier" <michael(dot)paquier(at)gmail(dot)com> wrote:
>> +VacuumRelation *
>> +makeVacuumRelation(RangeVar *relation, List *va_cols, Oid oid)
>> +{
>> + VacuumRelation *vacrel = makeNode(VacuumRelation);
>> + vacrel->relation = relation;
>> + vacrel->va_cols = va_cols;
>> + vacrel->oid = oid;
>> + return vacrel;
>> +}
>> Perhaps in makefuncs.c instead of vacuum.c? That's usually the place
>> used for node constructions like that.
>
> This function is moved in v11.
>
> On 8/30/17, 6:52 PM, "Michael Paquier" <michael(dot)paquier(at)gmail(dot)com> wrote:
>> On Thu, Aug 31, 2017 at 8:35 AM, David G. Johnston
>> <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>>> Inspired by the syntax documentation for EXPLAIN:
>>>
>>> VACUUM [ ( option [, ...] ) ] [ table_def [, ...] ]
>>>
>>> where option can be one of:
>>> FULL
>>> FREEZE
>>> VERBOSE
>>> DISABLE_PAGE_SKIPPING
>>>
>>> and where table_def is:
>>> table_name [ ( column_name [, ... ] ) ]
>>
>> Yes, splitting things would be nice with the column list. I need more coffee.
>
> I've made this change in v11 as well.
>
> v2 of the de-duplication patch seems to still apply cleanly, so I haven't
> made any further changes to it.
>

I reviewed these patches and found a issue.

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.

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

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabien COELHO 2017-08-31 07:35:20 Re: pgbench: Skipping the creating primary keys after initialization
Previous Message Amit Khandekar 2017-08-31 07:17:55 Re: Parallel Append implementation