@@ -2775,49 +2775,95 @@ psql_completion(const char *text, int start, int end)
2775
2775
2776
2776
/*
2777
2777
* complete CREATE TRIGGER <name> BEFORE,AFTER event ON with a list of
2778
- * tables
2778
+ * tables. EXECUTE FUNCTION is the recommended grammar instead of EXECUTE
2779
+ * PROCEDURE in version 11 and upwards.
2779
2780
*/
2780
2781
else if (TailMatches6 ("CREATE" , "TRIGGER" , MatchAny , "BEFORE|AFTER" , MatchAny , "ON" ))
2781
2782
COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_tables , NULL );
2782
2783
/* complete CREATE TRIGGER ... INSTEAD OF event ON with a list of views */
2783
2784
else if (TailMatches7 ("CREATE" , "TRIGGER" , MatchAny , "INSTEAD" , "OF" , MatchAny , "ON" ))
2784
2785
COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_views , NULL );
2785
2786
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches2 ("ON" , MatchAny ))
2786
- COMPLETE_WITH_LIST7 ("NOT DEFERRABLE" , "DEFERRABLE" , "INITIALLY" ,
2787
- "REFERENCING" , "FOR" , "WHEN (" , "EXECUTE PROCEDURE" );
2787
+ {
2788
+ if (pset .sversion >= 110000 )
2789
+ COMPLETE_WITH_LIST7 ("NOT DEFERRABLE" , "DEFERRABLE" , "INITIALLY" ,
2790
+ "REFERENCING" , "FOR" , "WHEN (" ,
2791
+ "EXECUTE FUNCTION" );
2792
+ else
2793
+ COMPLETE_WITH_LIST7 ("NOT DEFERRABLE" , "DEFERRABLE" , "INITIALLY" ,
2794
+ "REFERENCING" , "FOR" , "WHEN (" ,
2795
+ "EXECUTE PROCEDURE" );
2796
+ }
2788
2797
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) &&
2789
2798
(TailMatches1 ("DEFERRABLE" ) || TailMatches2 ("INITIALLY" , "IMMEDIATE|DEFERRED" )))
2790
- COMPLETE_WITH_LIST4 ("REFERENCING" , "FOR" , "WHEN (" , "EXECUTE PROCEDURE" );
2799
+ {
2800
+ if (pset .sversion >= 110000 )
2801
+ COMPLETE_WITH_LIST4 ("REFERENCING" , "FOR" , "WHEN (" ,
2802
+ "EXECUTE FUNCTION" );
2803
+ else
2804
+ COMPLETE_WITH_LIST4 ("REFERENCING" , "FOR" , "WHEN (" ,
2805
+ "EXECUTE PROCEDURE" );
2806
+ }
2791
2807
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches1 ("REFERENCING" ))
2792
2808
COMPLETE_WITH_LIST2 ("OLD TABLE" , "NEW TABLE" );
2793
2809
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches2 ("OLD|NEW" , "TABLE" ))
2794
2810
COMPLETE_WITH_CONST ("AS" );
2795
2811
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) &&
2796
2812
(TailMatches5 ("REFERENCING" , "OLD" , "TABLE" , "AS" , MatchAny ) ||
2797
2813
TailMatches4 ("REFERENCING" , "OLD" , "TABLE" , MatchAny )))
2798
- COMPLETE_WITH_LIST4 ("NEW TABLE" , "FOR" , "WHEN (" , "EXECUTE PROCEDURE" );
2814
+ {
2815
+ if (pset .sversion >= 110000 )
2816
+ COMPLETE_WITH_LIST4 ("NEW TABLE" , "FOR" , "WHEN (" ,
2817
+ "EXECUTE FUNCTION" );
2818
+ else
2819
+ COMPLETE_WITH_LIST4 ("NEW TABLE" , "FOR" , "WHEN (" ,
2820
+ "EXECUTE PROCEDURE" );
2821
+ }
2799
2822
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) &&
2800
2823
(TailMatches5 ("REFERENCING" , "NEW" , "TABLE" , "AS" , MatchAny ) ||
2801
2824
TailMatches4 ("REFERENCING" , "NEW" , "TABLE" , MatchAny )))
2802
- COMPLETE_WITH_LIST4 ("OLD TABLE" , "FOR" , "WHEN (" , "EXECUTE PROCEDURE" );
2825
+ {
2826
+ if (pset .sversion >= 110000 )
2827
+ COMPLETE_WITH_LIST4 ("OLD TABLE" , "FOR" , "WHEN (" ,
2828
+ "EXECUTE FUNCTION" );
2829
+ else
2830
+ COMPLETE_WITH_LIST4 ("OLD TABLE" , "FOR" , "WHEN (" ,
2831
+ "EXECUTE PROCEDURE" );
2832
+ }
2803
2833
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) &&
2804
2834
(TailMatches9 ("REFERENCING" , "OLD|NEW" , "TABLE" , "AS" , MatchAny , "OLD|NEW" , "TABLE" , "AS" , MatchAny ) ||
2805
2835
TailMatches8 ("REFERENCING" , "OLD|NEW" , "TABLE" , MatchAny , "OLD|NEW" , "TABLE" , "AS" , MatchAny ) ||
2806
2836
TailMatches8 ("REFERENCING" , "OLD|NEW" , "TABLE" , "AS" , MatchAny , "OLD|NEW" , "TABLE" , MatchAny ) ||
2807
2837
TailMatches7 ("REFERENCING" , "OLD|NEW" , "TABLE" , MatchAny , "OLD|NEW" , "TABLE" , MatchAny )))
2808
- COMPLETE_WITH_LIST3 ("FOR" , "WHEN (" , "EXECUTE PROCEDURE" );
2838
+ {
2839
+ if (pset .sversion >= 110000 )
2840
+ COMPLETE_WITH_LIST3 ("FOR" , "WHEN (" , "EXECUTE FUNCTION" );
2841
+ else
2842
+ COMPLETE_WITH_LIST3 ("FOR" , "WHEN (" , "EXECUTE PROCEDURE" );
2843
+ }
2809
2844
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches1 ("FOR" ))
2810
2845
COMPLETE_WITH_LIST3 ("EACH" , "ROW" , "STATEMENT" );
2811
2846
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches2 ("FOR" , "EACH" ))
2812
2847
COMPLETE_WITH_LIST2 ("ROW" , "STATEMENT" );
2813
2848
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) &&
2814
2849
(TailMatches3 ("FOR" , "EACH" , "ROW|STATEMENT" ) ||
2815
2850
TailMatches2 ("FOR" , "ROW|STATEMENT" )))
2816
- COMPLETE_WITH_LIST2 ("WHEN (" , "EXECUTE PROCEDURE" );
2851
+ {
2852
+ if (pset .sversion >= 110000 )
2853
+ COMPLETE_WITH_LIST2 ("WHEN (" , "EXECUTE FUNCTION" );
2854
+ else
2855
+ COMPLETE_WITH_LIST2 ("WHEN (" , "EXECUTE PROCEDURE" );
2856
+ }
2817
2857
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE */
2818
2858
else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches1 ("EXECUTE" ))
2819
- COMPLETE_WITH_CONST ("PROCEDURE" );
2820
- else if (HeadMatches2 ("CREATE" , "TRIGGER" ) && TailMatches2 ("EXECUTE" , "PROCEDURE" ))
2859
+ {
2860
+ if (pset .sversion >= 110000 )
2861
+ COMPLETE_WITH_CONST ("FUNCTION" );
2862
+ else
2863
+ COMPLETE_WITH_CONST ("PROCEDURE" );
2864
+ }
2865
+ else if (HeadMatches2 ("CREATE" , "TRIGGER" ) &&
2866
+ TailMatches2 ("EXECUTE" , "FUNCTION|PROCEDURE" ))
2821
2867
COMPLETE_WITH_VERSIONED_SCHEMA_QUERY (Query_for_list_of_functions , NULL );
2822
2868
2823
2869
/* CREATE ROLE,USER,GROUP <name> */
0 commit comments