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

Commit292ef6e

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. In passing, add tab completion of EXECUTEFUNCTION/PROCEDURE after a complete WHEN ( … ) clause.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 parent1007465 commit292ef6e

File tree

1 file changed

+56
-11
lines changed

1 file changed

+56
-11
lines changed

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

Lines changed: 56 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2465,49 +2465,94 @@ psql_completion(const char *text, int start, int end)
24652465

24662466
/*
24672467
* complete CREATE TRIGGER <name> BEFORE,AFTER event ON with a list of
2468-
* tables
2468+
* tables. EXECUTE FUNCTION is the recommended grammar instead of EXECUTE
2469+
* PROCEDURE in version 11 and upwards.
24692470
*/
24702471
elseif (TailMatches("CREATE","TRIGGER",MatchAny,"BEFORE|AFTER",MatchAny,"ON"))
24712472
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables,NULL);
24722473
/* complete CREATE TRIGGER ... INSTEAD OF event ON with a list of views */
24732474
elseif (TailMatches("CREATE","TRIGGER",MatchAny,"INSTEAD","OF",MatchAny,"ON"))
24742475
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_views,NULL);
24752476
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("ON",MatchAny))
2476-
COMPLETE_WITH("NOT DEFERRABLE","DEFERRABLE","INITIALLY",
2477-
"REFERENCING","FOR","WHEN (","EXECUTE PROCEDURE");
2477+
{
2478+
if (pset.sversion >=110000)
2479+
COMPLETE_WITH("NOT DEFERRABLE","DEFERRABLE","INITIALLY",
2480+
"REFERENCING","FOR","WHEN (","EXECUTE FUNCTION");
2481+
else
2482+
COMPLETE_WITH("NOT DEFERRABLE","DEFERRABLE","INITIALLY",
2483+
"REFERENCING","FOR","WHEN (","EXECUTE PROCEDURE");
2484+
}
24782485
elseif (HeadMatches("CREATE","TRIGGER")&&
24792486
(TailMatches("DEFERRABLE")||TailMatches("INITIALLY","IMMEDIATE|DEFERRED")))
2480-
COMPLETE_WITH("REFERENCING","FOR","WHEN (","EXECUTE PROCEDURE");
2487+
{
2488+
if (pset.sversion >=110000)
2489+
COMPLETE_WITH("REFERENCING","FOR","WHEN (","EXECUTE FUNCTION");
2490+
else
2491+
COMPLETE_WITH("REFERENCING","FOR","WHEN (","EXECUTE PROCEDURE");
2492+
}
24812493
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("REFERENCING"))
24822494
COMPLETE_WITH("OLD TABLE","NEW TABLE");
24832495
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("OLD|NEW","TABLE"))
24842496
COMPLETE_WITH("AS");
24852497
elseif (HeadMatches("CREATE","TRIGGER")&&
24862498
(TailMatches("REFERENCING","OLD","TABLE","AS",MatchAny)||
24872499
TailMatches("REFERENCING","OLD","TABLE",MatchAny)))
2488-
COMPLETE_WITH("NEW TABLE","FOR","WHEN (","EXECUTE PROCEDURE");
2500+
{
2501+
if (pset.sversion >=110000)
2502+
COMPLETE_WITH("NEW TABLE","FOR","WHEN (","EXECUTE FUNCTION");
2503+
else
2504+
COMPLETE_WITH("NEW TABLE","FOR","WHEN (","EXECUTE PROCEDURE");
2505+
}
24892506
elseif (HeadMatches("CREATE","TRIGGER")&&
24902507
(TailMatches("REFERENCING","NEW","TABLE","AS",MatchAny)||
24912508
TailMatches("REFERENCING","NEW","TABLE",MatchAny)))
2492-
COMPLETE_WITH("OLD TABLE","FOR","WHEN (","EXECUTE PROCEDURE");
2509+
{
2510+
if (pset.sversion >=110000)
2511+
COMPLETE_WITH("OLD TABLE","FOR","WHEN (","EXECUTE FUNCTION");
2512+
else
2513+
COMPLETE_WITH("OLD TABLE","FOR","WHEN (","EXECUTE PROCEDURE");
2514+
}
24932515
elseif (HeadMatches("CREATE","TRIGGER")&&
24942516
(TailMatches("REFERENCING","OLD|NEW","TABLE","AS",MatchAny,"OLD|NEW","TABLE","AS",MatchAny)||
24952517
TailMatches("REFERENCING","OLD|NEW","TABLE",MatchAny,"OLD|NEW","TABLE","AS",MatchAny)||
24962518
TailMatches("REFERENCING","OLD|NEW","TABLE","AS",MatchAny,"OLD|NEW","TABLE",MatchAny)||
24972519
TailMatches("REFERENCING","OLD|NEW","TABLE",MatchAny,"OLD|NEW","TABLE",MatchAny)))
2498-
COMPLETE_WITH("FOR","WHEN (","EXECUTE PROCEDURE");
2520+
{
2521+
if (pset.sversion >=110000)
2522+
COMPLETE_WITH("FOR","WHEN (","EXECUTE FUNCTION");
2523+
else
2524+
COMPLETE_WITH("FOR","WHEN (","EXECUTE PROCEDURE");
2525+
}
24992526
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("FOR"))
25002527
COMPLETE_WITH("EACH","ROW","STATEMENT");
25012528
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("FOR","EACH"))
25022529
COMPLETE_WITH("ROW","STATEMENT");
25032530
elseif (HeadMatches("CREATE","TRIGGER")&&
25042531
(TailMatches("FOR","EACH","ROW|STATEMENT")||
25052532
TailMatches("FOR","ROW|STATEMENT")))
2506-
COMPLETE_WITH("WHEN (","EXECUTE PROCEDURE");
2507-
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE */
2533+
{
2534+
if (pset.sversion >=110000)
2535+
COMPLETE_WITH("WHEN (","EXECUTE FUNCTION");
2536+
else
2537+
COMPLETE_WITH("WHEN (","EXECUTE PROCEDURE");
2538+
}
2539+
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("WHEN","(*)"))
2540+
{
2541+
if (pset.sversion >=110000)
2542+
COMPLETE_WITH("EXECUTE FUNCTION");
2543+
else
2544+
COMPLETE_WITH("EXECUTE PROCEDURE");
2545+
}
2546+
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE|FUNCTION */
25082547
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("EXECUTE"))
2509-
COMPLETE_WITH("PROCEDURE");
2510-
elseif (HeadMatches("CREATE","TRIGGER")&&TailMatches("EXECUTE","PROCEDURE"))
2548+
{
2549+
if (pset.sversion >=110000)
2550+
COMPLETE_WITH("FUNCTION");
2551+
else
2552+
COMPLETE_WITH("PROCEDURE");
2553+
}
2554+
elseif (HeadMatches("CREATE","TRIGGER")&&
2555+
TailMatches("EXECUTE","FUNCTION|PROCEDURE"))
25112556
COMPLETE_WITH_VERSIONED_SCHEMA_QUERY(Query_for_list_of_functions,NULL);
25122557

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp