On 05.02.2016 11:09, Kyotaro HORIGUCHI wrote:
I considered how to make tab-completion robust for syntactical
noises, in other words, optional words in syntax. Typically "IF
(NOT) EXISTS", UNIQUE and TEMPORARY are words that don't affect
further completion. However, the current delimit-matching
mechanism is not so capable (or is complexty-prone) to live with
such noises. I have proposed to use regular expressions or
simplified one for the robustness but it was too complex to be
This is another answer for the problem. Removal of such words
on-the-fly makes further matching more robust.
Next, currently some CREATE xxx subsyntaxes of CREATE SCHEMA are
matched using TailMatching but it makes difficult the
options-removal operations, which needs forward matching.
So I introduced two things to resolve them by this patch.
I did some tests with your patch. But I am not confident in tab-complete.c.
And I have some notes:
1 - I execute git apply command and get the following warning:
warning: 1 line adds whitespace errors.
This is because of superfluous whitespace I think.
2 - In psql I write "create table if" and press <TAB>. psql adds the
create table IF NOT EXISTS
I think psql should continue with lower case if user wrote query with
loser case text:
create table if not exists
3 - Same with "IF EXISTS". If a write "alter view if" and press <TAB>
alter view IF EXISTS
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company
Sent via pgsql-hackers mailing list (email@example.com)
To make changes to your subscription: