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

Commitcd34247

Browse files
committed
psql: Add tab completion for view options.
Add support for tab completion of WITH (...) options to CREATE VIEW,and for the corresponding SET/RESET (...) options in ALTER VIEW.Christoph Heiss, reviewed by Melih Mutlu, Vignesh C, Jim Jones,Mikhail Gribkov, David Zhang, Shubham Khanna, and me.Discussion:https://postgr.es/m/a2075c5a-66f9-a564-f038-9ac044b03117@c8h4.io
1 parenta9a8108 commitcd34247

File tree

1 file changed

+46
-4
lines changed

1 file changed

+46
-4
lines changed

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

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1329,6 +1329,13 @@ static const char *const table_storage_parameters[] = {
13291329
NULL
13301330
};
13311331

1332+
/* Optional parameters for CREATE VIEW and ALTER VIEW */
1333+
staticconstchar*constview_optional_parameters[]= {
1334+
"check_option",
1335+
"security_barrier",
1336+
"security_invoker",
1337+
NULL
1338+
};
13321339

13331340
/* Forward declaration of functions */
13341341
staticchar**psql_completion(constchar*text,intstart,intend);
@@ -2216,8 +2223,7 @@ psql_completion(const char *text, int start, int end)
22162223
COMPLETE_WITH("TO");
22172224
/* ALTER VIEW <name> */
22182225
elseif (Matches("ALTER","VIEW",MatchAny))
2219-
COMPLETE_WITH("ALTER COLUMN","OWNER TO","RENAME",
2220-
"SET SCHEMA");
2226+
COMPLETE_WITH("ALTER COLUMN","OWNER TO","RENAME","RESET","SET");
22212227
/* ALTER VIEW xxx RENAME */
22222228
elseif (Matches("ALTER","VIEW",MatchAny,"RENAME"))
22232229
COMPLETE_WITH_ATTR_PLUS(prev2_wd,"COLUMN","TO");
@@ -2233,6 +2239,21 @@ psql_completion(const char *text, int start, int end)
22332239
/* ALTER VIEW xxx RENAME COLUMN yyy */
22342240
elseif (Matches("ALTER","VIEW",MatchAny,"RENAME","COLUMN",MatchAnyExcept("TO")))
22352241
COMPLETE_WITH("TO");
2242+
/* ALTER VIEW xxx RESET ( */
2243+
elseif (Matches("ALTER","VIEW",MatchAny,"RESET"))
2244+
COMPLETE_WITH("(");
2245+
/* Complete ALTER VIEW xxx SET with "(" or "SCHEMA" */
2246+
elseif (Matches("ALTER","VIEW",MatchAny,"SET"))
2247+
COMPLETE_WITH("(","SCHEMA");
2248+
/* ALTER VIEW xxx SET|RESET ( yyy [= zzz] ) */
2249+
elseif (Matches("ALTER","VIEW",MatchAny,"SET|RESET","("))
2250+
COMPLETE_WITH_LIST(view_optional_parameters);
2251+
elseif (Matches("ALTER","VIEW",MatchAny,"SET","(",MatchAny))
2252+
COMPLETE_WITH("=");
2253+
elseif (Matches("ALTER","VIEW",MatchAny,"SET","(","check_option","="))
2254+
COMPLETE_WITH("local","cascaded");
2255+
elseif (Matches("ALTER","VIEW",MatchAny,"SET","(","security_barrier|security_invoker","="))
2256+
COMPLETE_WITH("true","false");
22362257

22372258
/* ALTER MATERIALIZED VIEW <name> */
22382259
elseif (Matches("ALTER","MATERIALIZED","VIEW",MatchAny))
@@ -3531,14 +3552,35 @@ psql_completion(const char *text, int start, int end)
35313552
}
35323553

35333554
/* CREATE VIEW --- is allowed inside CREATE SCHEMA, so use TailMatches */
3534-
/* Complete CREATE [ OR REPLACE ] VIEW <name> with AS */
3555+
/* Complete CREATE [ OR REPLACE ] VIEW <name> with ASor WITH*/
35353556
elseif (TailMatches("CREATE","VIEW",MatchAny)||
35363557
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny))
3537-
COMPLETE_WITH("AS");
3558+
COMPLETE_WITH("AS","WITH");
35383559
/* Complete "CREATE [ OR REPLACE ] VIEW <sth> AS with "SELECT" */
35393560
elseif (TailMatches("CREATE","VIEW",MatchAny,"AS")||
35403561
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"AS"))
35413562
COMPLETE_WITH("SELECT");
3563+
/* CREATE [ OR REPLACE ] VIEW <name> WITH ( yyy [= zzz] ) */
3564+
elseif (TailMatches("CREATE","VIEW",MatchAny,"WITH")||
3565+
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"WITH"))
3566+
COMPLETE_WITH("(");
3567+
elseif (TailMatches("CREATE","VIEW",MatchAny,"WITH","(")||
3568+
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"WITH","("))
3569+
COMPLETE_WITH_LIST(view_optional_parameters);
3570+
elseif (TailMatches("CREATE","VIEW",MatchAny,"WITH","(","check_option")||
3571+
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"WITH","(","check_option"))
3572+
COMPLETE_WITH("=");
3573+
elseif (TailMatches("CREATE","VIEW",MatchAny,"WITH","(","check_option","=")||
3574+
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"WITH","(","check_option","="))
3575+
COMPLETE_WITH("local","cascaded");
3576+
/* CREATE [ OR REPLACE ] VIEW <name> WITH ( ... ) AS */
3577+
elseif (TailMatches("CREATE","VIEW",MatchAny,"WITH","(*)")||
3578+
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"WITH","(*)"))
3579+
COMPLETE_WITH("AS");
3580+
/* CREATE [ OR REPLACE ] VIEW <name> WITH ( ... ) AS SELECT */
3581+
elseif (TailMatches("CREATE","VIEW",MatchAny,"WITH","(*)","AS")||
3582+
TailMatches("CREATE","OR","REPLACE","VIEW",MatchAny,"WITH","(*)","AS"))
3583+
COMPLETE_WITH("SELECT");
35423584

35433585
/* CREATE MATERIALIZED VIEW */
35443586
elseif (Matches("CREATE","MATERIALIZED"))

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp