Re: Several problems in tab-completions for SET/RESET

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Several problems in tab-completions for SET/RESET
Date: 2016-01-28 13:15:39
Message-ID: CAB7nPqQj=Q7myfuegRFQBjOWh96k9OFvJdgcK+EkimwHNb-VZw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jan 28, 2016 at 9:32 PM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> I found that the following tab-completions for SET/RESET which
> worked properly before doesn't work properly now in the master.
>
> 1. ALTER SYSTEM SET|RESET <tab> lists nothing.
> 2. ALTER DATABASE xxx SET <tab> lists nothing.
> 3. ALTER DATABASE xxx SET yyy <tab> lists nothing.
> 4. ALTER DATABASE xxx SET datestyle TO <tab> lists nothing.
>
> Attached patch fixes those problems.

- else if (Matches4("ALTER", "SYSTEM", "SET|RESET", MatchAny))
+ else if (Matches3("ALTER", "SYSTEM", "SET|RESET"))
Good catch.

- else if (Matches2("SET", MatchAny))
+ else if (TailMatches2("SET", MatchAny) &&
+ !TailMatches4("UPDATE|DOMAIN", MatchAny,
MatchAny, MatchAny) &&
+ !TailMatches1("TABLESPACE|SCHEMA") &&
+ !ends_with(prev_wd, ')') &&
+ !ends_with(prev_wd, '='))
COMPLETE_WITH_CONST("TO");
This gets... unreadable.

In order to maximize the amount of Matches() used, wouldn't it be
better to complete a bit more the list of completions directly in
ALTER DATABASE? This would make the code more readable.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Langote 2016-01-28 13:41:40 Re: [PROPOSAL] VACUUM Progress Checker.
Previous Message Masahiko Sawada 2016-01-28 13:10:49 Re: Support for N synchronous standby servers - take 2