@@ -2009,8 +2009,8 @@ psql_completion(const char *text, int start, int end)
2009
2009
else if (TailMatches3 ("INDEX|CONCURRENTLY" ,MatchAny ,"ON" )||
2010
2010
TailMatches2 ("INDEX|CONCURRENTLY" ,"ON" ))
2011
2011
COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_tm ,NULL );
2012
- /* Complete... INDEX CONCURRENTLY with "ON" and existing indexes */
2013
- else if (TailMatches2 ( "INDEX" ,"CONCURRENTLY" ))
2012
+ /* CompleteCREATE|UNIQUE INDEX CONCURRENTLY with "ON" and existing indexes */
2013
+ else if (TailMatches3 ( "CREATE|UNIQUE" , "INDEX" ,"CONCURRENTLY" ))
2014
2014
COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_indexes ,
2015
2015
" UNION SELECT 'ON'" );
2016
2016
/* Complete CREATE|UNIQUE INDEX [CONCURRENTLY] <sth> with "ON" */
@@ -2247,7 +2247,7 @@ psql_completion(const char *text, int start, int end)
2247
2247
/* DROP */
2248
2248
/* Complete DROP object with CASCADE / RESTRICT */
2249
2249
else if (Matches3 ("DROP" ,
2250
- "COLLATION|CONVERSION|DOMAIN|EXTENSION|INDEX| LANGUAGE|SCHEMA|SEQUENCE|SERVER|TABLE|TYPE|VIEW" ,
2250
+ "COLLATION|CONVERSION|DOMAIN|EXTENSION|LANGUAGE|SCHEMA|SEQUENCE|SERVER|TABLE|TYPE|VIEW" ,
2251
2251
MatchAny )||
2252
2252
(Matches4 ("DROP" ,"AGGREGATE|FUNCTION" ,MatchAny ,MatchAny )&&
2253
2253
ends_with (prev_wd ,')' ))||
@@ -2265,6 +2265,17 @@ psql_completion(const char *text, int start, int end)
2265
2265
else if (Matches2 ("DROP" ,"FOREIGN" ))
2266
2266
COMPLETE_WITH_LIST2 ("DATA WRAPPER" ,"TABLE" );
2267
2267
2268
+ /* DROP INDEX */
2269
+ else if (Matches2 ("DROP" ,"INDEX" ))
2270
+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_indexes ,
2271
+ " UNION SELECT 'CONCURRENTLY'" );
2272
+ else if (Matches3 ("DROP" ,"INDEX" ,"CONCURRENTLY" ))
2273
+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_indexes ,NULL );
2274
+ else if (Matches3 ("DROP" ,"INDEX" ,MatchAny ))
2275
+ COMPLETE_WITH_LIST2 ("CASCADE" ,"RESTRICT" );
2276
+ else if (Matches4 ("DROP" ,"INDEX" ,"CONCURRENTLY" ,MatchAny ))
2277
+ COMPLETE_WITH_LIST2 ("CASCADE" ,"RESTRICT" );
2278
+
2268
2279
/* DROP MATERIALIZED VIEW */
2269
2280
else if (Matches2 ("DROP" ,"MATERIALIZED" ))
2270
2281
COMPLETE_WITH_CONST ("VIEW" );