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

Commit6079375

Browse files
committed
More psql tab-completion for new commands.
- ALTER FOREIGN DATA WRAPPER with HANDLER- ALTER TABLE VALIDATE CONSTRAINT- ALTER TYPE ADD VALUE- COPY with ENCODING and FORCE NOT NULL- CREATE FOREIGN DATA WRAPPER with HANDLER- CREATE TRIGGER ... INSTEAD OF
1 parent4191e16 commit6079375

File tree

1 file changed

+46
-12
lines changed

1 file changed

+46
-12
lines changed

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

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,7 @@ psql_completion(char *text, int start, int end)
841841

842842
/* ALTER SCHEMA <name> */
843843
elseif (pg_strcasecmp(prev3_wd,"ALTER")==0&&
844-
pg_strcasecmp(prev2_wd,"SCHEMA")==0)
844+
pg_strcasecmp(prev2_wd,"SCHEMA")==0)
845845
{
846846
staticconstchar*constlist_ALTERGEN[]=
847847
{"OWNER TO","RENAME TO",NULL};
@@ -906,7 +906,7 @@ psql_completion(char *text, int start, int end)
906906
pg_strcasecmp(prev2_wd,"WRAPPER")==0)
907907
{
908908
staticconstchar*constlist_ALTER_FDW[]=
909-
{"VALIDATOR","OPTIONS","OWNER TO",NULL};
909+
{"HANDLER","VALIDATOR","OPTIONS","OWNER TO",NULL};
910910

911911
COMPLETE_WITH_LIST(list_ALTER_FDW);
912912
}
@@ -1128,15 +1128,15 @@ psql_completion(char *text, int start, int end)
11281128
COMPLETE_WITH_CONST("RENAME TO");
11291129

11301130
/*
1131-
* If we detect ALTER TABLE <name>, suggest either ADD, DROP, ALTER,
1132-
* RENAME, CLUSTER ON or OWNER
1131+
* If we detect ALTER TABLE <name>, suggest sub commands
11331132
*/
11341133
elseif (pg_strcasecmp(prev3_wd,"ALTER")==0&&
11351134
pg_strcasecmp(prev2_wd,"TABLE")==0)
11361135
{
11371136
staticconstchar*constlist_ALTER2[]=
11381137
{"ADD","ALTER","CLUSTER ON","DISABLE","DROP","ENABLE","INHERIT",
1139-
"NO INHERIT","RENAME","RESET","OWNER TO","SET",NULL};
1138+
"NO INHERIT","RENAME","RESET","OWNER TO","SET",
1139+
"VALIDATE CONSTRAINT",NULL};
11401140

11411141
COMPLETE_WITH_LIST(list_ALTER2);
11421142
}
@@ -1420,11 +1420,21 @@ psql_completion(char *text, int start, int end)
14201420
pg_strcasecmp(prev2_wd,"TYPE")==0)
14211421
{
14221422
staticconstchar*constlist_ALTERTYPE[]=
1423-
{"ADD ATTRIBUTE","ALTER ATTRIBUTE","DROP ATTRIBUTE",
1423+
{"ADD ATTRIBUTE","ADD VALUE","ALTER ATTRIBUTE","DROP ATTRIBUTE",
14241424
"OWNER TO","RENAME","SET SCHEMA",NULL};
14251425

14261426
COMPLETE_WITH_LIST(list_ALTERTYPE);
14271427
}
1428+
/* complete ALTER TYPE <foo> ADD with actions */
1429+
elseif (pg_strcasecmp(prev4_wd,"ALTER")==0&&
1430+
pg_strcasecmp(prev3_wd,"TYPE")==0&&
1431+
pg_strcasecmp(prev_wd,"ADD")==0)
1432+
{
1433+
staticconstchar*constlist_ALTERTYPE[]=
1434+
{"ATTRIBUTE","VALUE",NULL};
1435+
1436+
COMPLETE_WITH_LIST(list_ALTERTYPE);
1437+
}
14281438
/* ALTER TYPE <foo> RENAME */
14291439
elseif (pg_strcasecmp(prev4_wd,"ALTER")==0&&
14301440
pg_strcasecmp(prev3_wd,"TYPE")==0&&
@@ -1598,7 +1608,7 @@ psql_completion(char *text, int start, int end)
15981608
pg_strcasecmp(prev2_wd,"TO")==0))
15991609
{
16001610
staticconstchar*constlist_COPY[]=
1601-
{"BINARY","OIDS","DELIMITER","NULL","CSV",NULL};
1611+
{"BINARY","OIDS","DELIMITER","NULL","CSV","ENCODING",NULL};
16021612

16031613
COMPLETE_WITH_LIST(list_COPY);
16041614
}
@@ -1609,7 +1619,7 @@ psql_completion(char *text, int start, int end)
16091619
pg_strcasecmp(prev3_wd,"TO")==0))
16101620
{
16111621
staticconstchar*constlist_CSV[]=
1612-
{"HEADER","QUOTE","ESCAPE","FORCE QUOTE",NULL};
1622+
{"HEADER","QUOTE","ESCAPE","FORCE QUOTE","FORCE NOT NULL",NULL};
16131623

16141624
COMPLETE_WITH_LIST(list_CSV);
16151625
}
@@ -1655,7 +1665,12 @@ psql_completion(char *text, int start, int end)
16551665
pg_strcasecmp(prev4_wd,"FOREIGN")==0&&
16561666
pg_strcasecmp(prev3_wd,"DATA")==0&&
16571667
pg_strcasecmp(prev2_wd,"WRAPPER")==0)
1658-
COMPLETE_WITH_CONST("VALIDATOR");
1668+
{
1669+
staticconstchar*constlist_CREATE_FOREIGN_DATA_WRAPPER[]=
1670+
{"HANDLER","VALIDATOR",NULL};
1671+
1672+
COMPLETE_WITH_LIST(list_CREATE_FOREIGN_DATA_WRAPPER);
1673+
}
16591674

16601675
/* CREATE INDEX */
16611676
/* First off we complete CREATE UNIQUE with "INDEX" */
@@ -1836,11 +1851,25 @@ psql_completion(char *text, int start, int end)
18361851

18371852
COMPLETE_WITH_LIST(list_CREATETRIGGER_EVENTS);
18381853
}
1839-
/* complete CREATE TRIGGER <name>BEFORE,AFTER sth withOR,ON */
1854+
/* complete CREATE TRIGGER <name>INSTEAD OF withan event */
18401855
elseif (pg_strcasecmp(prev5_wd,"CREATE")==0&&
18411856
pg_strcasecmp(prev4_wd,"TRIGGER")==0&&
1842-
(pg_strcasecmp(prev2_wd,"BEFORE")==0||
1843-
pg_strcasecmp(prev2_wd,"AFTER")==0))
1857+
pg_strcasecmp(prev2_wd,"INSTEAD")==0&&
1858+
pg_strcasecmp(prev_wd,"OF")==0)
1859+
{
1860+
staticconstchar*constlist_CREATETRIGGER_EVENTS[]=
1861+
{"INSERT","DELETE","UPDATE",NULL};
1862+
1863+
COMPLETE_WITH_LIST(list_CREATETRIGGER_EVENTS);
1864+
}
1865+
/* complete CREATE TRIGGER <name> BEFORE,AFTER sth with OR,ON */
1866+
elseif ((pg_strcasecmp(prev5_wd,"CREATE")==0&&
1867+
pg_strcasecmp(prev4_wd,"TRIGGER")==0&&
1868+
(pg_strcasecmp(prev2_wd,"BEFORE")==0||
1869+
pg_strcasecmp(prev2_wd,"AFTER")==0))||
1870+
(pg_strcasecmp(prev5_wd,"TRIGGER")==0&&
1871+
pg_strcasecmp(prev3_wd,"INSTEAD")==0&&
1872+
pg_strcasecmp(prev2_wd,"OF")==0))
18441873
{
18451874
staticconstchar*constlist_CREATETRIGGER2[]=
18461875
{"ON","OR",NULL};
@@ -1857,6 +1886,11 @@ psql_completion(char *text, int start, int end)
18571886
pg_strcasecmp(prev3_wd,"AFTER")==0)&&
18581887
pg_strcasecmp(prev_wd,"ON")==0)
18591888
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables,NULL);
1889+
/* complete CREATE TRIGGER ... INSTEAD OF event ON with a list of views */
1890+
elseif (pg_strcasecmp(prev4_wd,"INSTEAD")==0&&
1891+
pg_strcasecmp(prev3_wd,"OF")==0&&
1892+
pg_strcasecmp(prev_wd,"ON")==0)
1893+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_views,NULL);
18601894
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE */
18611895
elseif (pg_strcasecmp(prev_wd,"EXECUTE")==0)
18621896
COMPLETE_WITH_CONST("PROCEDURE");

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp