On Sat, Dec 12, 2015 at 11:17 AM, Peter Eisentraut <pete...@gmx.net> wrote: > These two tab completion pieces look strange to me: > > /* If we have CREATE|UNIQUE INDEX <sth> CONCURRENTLY, then add "ON" */ > else if ((pg_strcasecmp(prev3_wd, "INDEX") == 0 || > pg_strcasecmp(prev2_wd, "INDEX") == 0) && > pg_strcasecmp(prev_wd, "CONCURRENTLY") == 0) > COMPLETE_WITH_CONST("ON"); > /* If we have CREATE|UNIQUE INDEX <sth>, then add "ON" or "CONCURRENTLY" > */ > else if ((pg_strcasecmp(prev3_wd, "CREATE") == 0 || > pg_strcasecmp(prev3_wd, "UNIQUE") == 0) && > pg_strcasecmp(prev2_wd, "INDEX") == 0) > { > static const char *const list_CREATE_INDEX[] = > {"CONCURRENTLY", "ON", NULL}; > > COMPLETE_WITH_LIST(list_CREATE_INDEX); > } > > They appear to support a syntax along the lines of > > CREATE INDEX name CONCURRENTLY > > which is not the actual syntax.
Yep. That's visibly a bug introduced by this commit: commit: 37ec19a15ce452ee94f32ebc3d6a9a45868e82fd author: Itagaki Takahiro <itagaki.takah...@gmail.com> date: Wed, 17 Feb 2010 04:09:40 +0000 Support new syntax and improve handling of parentheses in psql tab-completion. The current implementation is missing a correct completion in a couple of cases, among them: -- Should be only ON =# create index asd CONCURRENTLY ON -- should give list of table =# create index CONCURRENTLY aaa on -- Should give ON and list of existing indexes =# create index concurrently Please see the attached to address those things (and others) with extra fixes for a couple of comments. Regards, -- Michael
20151213_psql_completion_index.patch
Description: binary/octet-stream
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers