Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfdf5ead

Browse files
committed
Add tab completion of EXECUTE FUNCTION for CREATE TRIGGER in psql
The change to accept EXECUTE FUNCTION as well as EXECUTE PROCEDURE inCREATE TRIGGER (added by0a63f99) forgot to tell psql's tab completionsystem about this.This change is version-aware, with FUNCTION being selected automaticallyinstead of PROCEDURE depending on the backend version, PROCEDURE beingan historical grammar kept for compatibility and considered asdeprecated in v11.Author: Dagfinn Ilmari MannsåkerReviewed-by: Tom Lane, Michael PaquierDiscussion:https://postgr.es/m/d8jmur4q4yc.fsf@dalvik.ping.uio.no
1 parentef45832 commitfdf5ead

File tree

1 file changed

+56
-10
lines changed

1 file changed

+56
-10
lines changed

‎src/bin/psql/tab-complete.c

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2775,49 +2775,95 @@ psql_completion(const char *text, int start, int end)
27752775

27762776
/*
27772777
* 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.
27792780
*/
27802781
elseif (TailMatches6("CREATE","TRIGGER",MatchAny,"BEFORE|AFTER",MatchAny,"ON"))
27812782
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables,NULL);
27822783
/* complete CREATE TRIGGER ... INSTEAD OF event ON with a list of views */
27832784
elseif (TailMatches7("CREATE","TRIGGER",MatchAny,"INSTEAD","OF",MatchAny,"ON"))
27842785
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_views,NULL);
27852786
elseif (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+
}
27882797
elseif (HeadMatches2("CREATE","TRIGGER")&&
27892798
(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+
}
27912807
elseif (HeadMatches2("CREATE","TRIGGER")&&TailMatches1("REFERENCING"))
27922808
COMPLETE_WITH_LIST2("OLD TABLE","NEW TABLE");
27932809
elseif (HeadMatches2("CREATE","TRIGGER")&&TailMatches2("OLD|NEW","TABLE"))
27942810
COMPLETE_WITH_CONST("AS");
27952811
elseif (HeadMatches2("CREATE","TRIGGER")&&
27962812
(TailMatches5("REFERENCING","OLD","TABLE","AS",MatchAny)||
27972813
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+
}
27992822
elseif (HeadMatches2("CREATE","TRIGGER")&&
28002823
(TailMatches5("REFERENCING","NEW","TABLE","AS",MatchAny)||
28012824
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+
}
28032833
elseif (HeadMatches2("CREATE","TRIGGER")&&
28042834
(TailMatches9("REFERENCING","OLD|NEW","TABLE","AS",MatchAny,"OLD|NEW","TABLE","AS",MatchAny)||
28052835
TailMatches8("REFERENCING","OLD|NEW","TABLE",MatchAny,"OLD|NEW","TABLE","AS",MatchAny)||
28062836
TailMatches8("REFERENCING","OLD|NEW","TABLE","AS",MatchAny,"OLD|NEW","TABLE",MatchAny)||
28072837
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+
}
28092844
elseif (HeadMatches2("CREATE","TRIGGER")&&TailMatches1("FOR"))
28102845
COMPLETE_WITH_LIST3("EACH","ROW","STATEMENT");
28112846
elseif (HeadMatches2("CREATE","TRIGGER")&&TailMatches2("FOR","EACH"))
28122847
COMPLETE_WITH_LIST2("ROW","STATEMENT");
28132848
elseif (HeadMatches2("CREATE","TRIGGER")&&
28142849
(TailMatches3("FOR","EACH","ROW|STATEMENT")||
28152850
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+
}
28172857
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE */
28182858
elseif (HeadMatches2("CREATE","TRIGGER")&&TailMatches1("EXECUTE"))
2819-
COMPLETE_WITH_CONST("PROCEDURE");
2820-
elseif (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+
elseif (HeadMatches2("CREATE","TRIGGER")&&
2866+
TailMatches2("EXECUTE","FUNCTION|PROCEDURE"))
28212867
COMPLETE_WITH_VERSIONED_SCHEMA_QUERY(Query_for_list_of_functions,NULL);
28222868

28232869
/* CREATE ROLE,USER,GROUP <name> */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp