psql: Add completion support for DROP INDEX CONCURRENTLY

based on patch by Kyotaro Horiguchi
This commit is contained in:
Peter Eisentraut 2016-01-16 20:46:14 -05:00
parent cf7dfbf2d6
commit 4189e3d659
1 changed files with 14 additions and 3 deletions

View File

@ -2009,8 +2009,8 @@ psql_completion(const char *text, int start, int end)
else if (TailMatches3("INDEX|CONCURRENTLY", MatchAny, "ON") ||
TailMatches2("INDEX|CONCURRENTLY", "ON"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tm, NULL);
/* Complete ... INDEX CONCURRENTLY with "ON" and existing indexes */
else if (TailMatches2("INDEX", "CONCURRENTLY"))
/* Complete CREATE|UNIQUE INDEX CONCURRENTLY with "ON" and existing indexes */
else if (TailMatches3("CREATE|UNIQUE", "INDEX", "CONCURRENTLY"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_indexes,
" UNION SELECT 'ON'");
/* Complete CREATE|UNIQUE INDEX [CONCURRENTLY] <sth> with "ON" */
@ -2247,7 +2247,7 @@ psql_completion(const char *text, int start, int end)
/* DROP */
/* Complete DROP object with CASCADE / RESTRICT */
else if (Matches3("DROP",
"COLLATION|CONVERSION|DOMAIN|EXTENSION|INDEX|LANGUAGE|SCHEMA|SEQUENCE|SERVER|TABLE|TYPE|VIEW",
"COLLATION|CONVERSION|DOMAIN|EXTENSION|LANGUAGE|SCHEMA|SEQUENCE|SERVER|TABLE|TYPE|VIEW",
MatchAny) ||
(Matches4("DROP", "AGGREGATE|FUNCTION", MatchAny, MatchAny) &&
ends_with(prev_wd, ')')) ||
@ -2265,6 +2265,17 @@ psql_completion(const char *text, int start, int end)
else if (Matches2("DROP", "FOREIGN"))
COMPLETE_WITH_LIST2("DATA WRAPPER", "TABLE");
/* DROP INDEX */
else if (Matches2("DROP", "INDEX"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_indexes,
" UNION SELECT 'CONCURRENTLY'");
else if (Matches3("DROP", "INDEX", "CONCURRENTLY"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_indexes, NULL);
else if (Matches3("DROP", "INDEX", MatchAny))
COMPLETE_WITH_LIST2("CASCADE", "RESTRICT");
else if (Matches4("DROP", "INDEX", "CONCURRENTLY", MatchAny))
COMPLETE_WITH_LIST2("CASCADE", "RESTRICT");
/* DROP MATERIALIZED VIEW */
else if (Matches2("DROP", "MATERIALIZED"))
COMPLETE_WITH_CONST("VIEW");