Re: Proposal : REINDEX xxx VERBOSE - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Proposal : REINDEX xxx VERBOSE
Date
Msg-id 54E381AD.1090409@BlueTreble.com
Whole thread Raw
In response to Re: Proposal : REINDEX xxx VERBOSE  (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>)
Responses Re: Proposal : REINDEX xxx VERBOSE  (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>)
List pgsql-hackers
On 2/16/15 9:43 PM, Kyotaro HORIGUCHI wrote:
> Hello, I had a look on gram.y and found other syntaxes using WITH
> option clause.
>
> At Wed, 11 Feb 2015 14:34:17 -0600, Jim Nasby<Jim.Nasby@BlueTreble.com>  wrote in<54DBBCC9.1020206@BlueTreble.com>
>> >I suspect at least some of this stems from how command line programs
>> >tend to process options before arguments. I tend to agree with you
>> >Tom, but I think what's more important is that we're consistent. COPY
>> >is already a bit of an oddball because it uses WITH, but both EXPLAIN
>> >and VACUUM use parenthesis immediately after the first
>> >verb. Introducing a parenthesis version that goes at the end instead
>> >of the beginning is just going to make this worse.
>> >
>> >If we're going to take a stand on this, we need to do it NOW, before
>> >we have even more commands that use ().
>> >
>> >I know you were worried about accepting options anywhere because it
>> >leads to reserved words, but perhaps we could support it just for
>> >EXPLAIN and VACUUM, and then switch to trailing options if people
>> >think that would be better.
> I agree with the direction, but I see two issues here; how many
> syntax variants we are allowed to have for one command at a time,
> and how far we should/may extend the unified options syntax on
> other commands.
>
>
> Let me put the issues aside for now, VACUUM can have trailing
> options naturally but it seems to change, but, IMHO, EXPLAIN
> should have the target statement at the tail end. Are you
> thinking of syntaxes like following?
>
>    VACUUM [FULL] [FREEZE] ... [ANALYZE] [tname [(cname, ...)]
> | VACUUM [({FULL [bool]|FREEZE [bool]|...}[,...])] [tname [(cname, ...)]
> | VACUUM [tname [(cname, ...)] [[WITH ]({FULL [bool]|FREEZE [bool]|...})]
>
> REINDEX [{INDEX|TABLE|...}] name [[WITH] (VERBOSE [bool]|...)]
>
> EXPLAIN [[WITH] ({ANALYZE [bool]|VERBOSE [bool]|... [,...]})] <statement>
>
> For concrete examples, the lines prefixed by asterisk are in new
> syntax.

If I could choose only one for explain, I would find it easier to be up 
front. That way you do the explain part on one line and just paste the 
query after that.

>   VACUUM FULL table1;
>   VACUUM ANALYZE table1 (col1);
>   VACUUM (ANALYZE, VERBOSE) table1 (col1);
> *VACUUM table1 WITH (FREEZE on)
> *VACUUM table1 (cola) WITH (ANALYZE)
> *VACUUM table1 WITH (ANALYZE)
> *VACUUM table1 (FREEZE on)
>
> The fifth example looks quite odd.

I don't think we need to allow both () and WITH... I'd say one or the 
other, preferably ().
-- 
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com



pgsql-hackers by date:

Previous
From: Neil Tiffin
Date:
Subject: Re: pgaudit - an auditing extension for PostgreSQL
Next
From: Stephen Frost
Date:
Subject: Re: pgaudit - an auditing extension for PostgreSQL