On Thu, Jan 28, 2016 at 9:32 PM, Fujii Masao <masao.fu...@gmail.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


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to