@@ -2209,9 +2209,43 @@ psql_completion(const char *text, int start, int end)
2209
2209
/* complete CREATE TRIGGER ... INSTEAD OF event ON with a list of views */
2210
2210
else if (TailMatches7 ("CREATE" ,"TRIGGER" ,MatchAny ,"INSTEAD" ,"OF" ,MatchAny ,"ON" ))
2211
2211
COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_views ,NULL );
2212
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches2 ("ON" ,MatchAny ))
2213
+ COMPLETE_WITH_LIST7 ("NOT DEFERRABLE" ,"DEFERRABLE" ,"INITIALLY" ,
2214
+ "REFERENCING" ,"FOR" ,"WHEN (" ,"EXECUTE PROCEDURE" );
2215
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&&
2216
+ (TailMatches1 ("DEFERRABLE" )|| TailMatches2 ("INITIALLY" ,"IMMEDIATE|DEFERRED" )))
2217
+ COMPLETE_WITH_LIST4 ("REFERENCING" ,"FOR" ,"WHEN (" ,"EXECUTE PROCEDURE" );
2218
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches1 ("REFERENCING" ))
2219
+ COMPLETE_WITH_LIST2 ("OLD TABLE" ,"NEW TABLE" );
2220
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches2 ("OLD|NEW" ,"TABLE" ))
2221
+ COMPLETE_WITH_CONST ("AS" );
2222
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&&
2223
+ (TailMatches5 ("REFERENCING" ,"OLD" ,"TABLE" ,"AS" ,MatchAny )||
2224
+ TailMatches4 ("REFERENCING" ,"OLD" ,"TABLE" ,MatchAny )))
2225
+ COMPLETE_WITH_LIST4 ("NEW TABLE" ,"FOR" ,"WHEN (" ,"EXECUTE PROCEDURE" );
2226
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&&
2227
+ (TailMatches5 ("REFERENCING" ,"NEW" ,"TABLE" ,"AS" ,MatchAny )||
2228
+ TailMatches4 ("REFERENCING" ,"NEW" ,"TABLE" ,MatchAny )))
2229
+ COMPLETE_WITH_LIST4 ("OLD TABLE" ,"FOR" ,"WHEN (" ,"EXECUTE PROCEDURE" );
2230
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&&
2231
+ (TailMatches9 ("REFERENCING" ,"OLD|NEW" ,"TABLE" ,"AS" ,MatchAny ,"OLD|NEW" ,"TABLE" ,"AS" ,MatchAny )||
2232
+ TailMatches8 ("REFERENCING" ,"OLD|NEW" ,"TABLE" ,MatchAny ,"OLD|NEW" ,"TABLE" ,"AS" ,MatchAny )||
2233
+ TailMatches8 ("REFERENCING" ,"OLD|NEW" ,"TABLE" ,"AS" ,MatchAny ,"OLD|NEW" ,"TABLE" ,MatchAny )||
2234
+ TailMatches7 ("REFERENCING" ,"OLD|NEW" ,"TABLE" ,MatchAny ,"OLD|NEW" ,"TABLE" ,MatchAny )))
2235
+ COMPLETE_WITH_LIST3 ("FOR" ,"WHEN (" ,"EXECUTE PROCEDURE" );
2236
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches1 ("FOR" ))
2237
+ COMPLETE_WITH_LIST3 ("EACH" ,"ROW" ,"STATEMENT" );
2238
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches2 ("FOR" ,"EACH" ))
2239
+ COMPLETE_WITH_LIST2 ("ROW" ,"STATEMENT" );
2240
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&&
2241
+ (TailMatches3 ("FOR" ,"EACH" ,"ROW|STATEMENT" )||
2242
+ TailMatches2 ("FOR" ,"ROW|STATEMENT" )))
2243
+ COMPLETE_WITH_LIST2 ("WHEN (" ,"EXECUTE PROCEDURE" );
2212
2244
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE */
2213
2245
else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches1 ("EXECUTE" ))
2214
2246
COMPLETE_WITH_CONST ("PROCEDURE" );
2247
+ else if (HeadMatches2 ("CREATE" ,"TRIGGER" )&& TailMatches2 ("EXECUTE" ,"PROCEDURE" ))
2248
+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_functions ,NULL );
2215
2249
2216
2250
/* CREATE ROLE,USER,GROUP <name> */
2217
2251
else if (Matches3 ("CREATE" ,"ROLE|GROUP|USER" ,MatchAny )&&