Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit e6b8e83

Browse files
committed
Add psql completion for [ NO ] DEPENDS ON EXTENSION
ALTER INDEX was able to handle that already. This adds tab completion for all the remaining commands that support this grammar: - ALTER FUNCTION - ALTER PROCEDURE - ALTER ROUTINE - ALTER TRIGGER - ALTER MATERIALIZED VIEW Author: Ian Lawrence Barwick Discussion: https://postgr.es/m/CAB8KJ=iypYudXuMOAMOP4BpkaYbXxk=a2cdJppX0e9mJXWtuig@mail.gmail.com
1 parent 38bb3ae commit e6b8e83

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/bin/psql/tab-complete.c

+18-9
Original file line numberDiff line numberDiff line change
@@ -1614,14 +1614,24 @@ psql_completion(const char *text, int start, int end)
16141614
/* ALTER AGGREGATE,FUNCTION,PROCEDURE,ROUTINE <name> */
16151615
else if (Matches("ALTER", "AGGREGATE|FUNCTION|PROCEDURE|ROUTINE", MatchAny))
16161616
COMPLETE_WITH("(");
1617-
/* ALTER AGGREGATE,FUNCTION,PROCEDURE,ROUTINE <name> (...) */
1618-
else if (Matches("ALTER", "AGGREGATE|FUNCTION|PROCEDURE|ROUTINE", MatchAny, MatchAny))
1617+
/* ALTER AGGREGATE <name> (...) */
1618+
else if (Matches("ALTER", "AGGREGATE", MatchAny, MatchAny))
16191619
{
16201620
if (ends_with(prev_wd, ')'))
16211621
COMPLETE_WITH("OWNER TO", "RENAME TO", "SET SCHEMA");
16221622
else
16231623
COMPLETE_WITH_FUNCTION_ARG(prev2_wd);
16241624
}
1625+
/* ALTER FUNCTION,PROCEDURE,ROUTINE <name> (...) */
1626+
else if (Matches("ALTER", "FUNCTION|PROCEDURE|ROUTINE", MatchAny, MatchAny))
1627+
{
1628+
if (ends_with(prev_wd, ')'))
1629+
COMPLETE_WITH("OWNER TO", "RENAME TO", "SET SCHEMA",
1630+
"DEPENDS ON EXTENSION", "NO DEPENDS ON EXTENSION");
1631+
else
1632+
COMPLETE_WITH_FUNCTION_ARG(prev2_wd);
1633+
}
1634+
16251635
/* ALTER PUBLICATION <name> */
16261636
else if (Matches("ALTER", "PUBLICATION", MatchAny))
16271637
COMPLETE_WITH("ADD TABLE", "DROP TABLE", "OWNER TO", "RENAME TO", "SET");
@@ -1735,7 +1745,8 @@ psql_completion(const char *text, int start, int end)
17351745
/* ALTER INDEX <name> */
17361746
else if (Matches("ALTER", "INDEX", MatchAny))
17371747
COMPLETE_WITH("ALTER COLUMN", "OWNER TO", "RENAME TO", "SET",
1738-
"RESET", "ATTACH PARTITION", "DEPENDS", "NO DEPENDS",
1748+
"RESET", "ATTACH PARTITION",
1749+
"DEPENDS ON EXTENSION", "NO DEPENDS ON EXTENSION",
17391750
"ALTER COLLATION");
17401751
else if (Matches("ALTER", "INDEX", MatchAny, "ATTACH"))
17411752
COMPLETE_WITH("PARTITION");
@@ -1782,10 +1793,6 @@ psql_completion(const char *text, int start, int end)
17821793
"buffering =", /* GiST */
17831794
"pages_per_range =", "autosummarize =" /* BRIN */
17841795
);
1785-
else if (Matches("ALTER", "INDEX", MatchAny, "NO", "DEPENDS"))
1786-
COMPLETE_WITH("ON EXTENSION");
1787-
else if (Matches("ALTER", "INDEX", MatchAny, "DEPENDS"))
1788-
COMPLETE_WITH("ON EXTENSION");
17891796
/* ALTER INDEX <name> ALTER COLLATION */
17901797
else if (Matches("ALTER", "INDEX", MatchAny, "ALTER", "COLLATION"))
17911798
{
@@ -1920,7 +1927,8 @@ psql_completion(const char *text, int start, int end)
19201927
/* ALTER MATERIALIZED VIEW <name> */
19211928
else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny))
19221929
COMPLETE_WITH("ALTER COLUMN", "CLUSTER ON", "DEPENDS ON EXTENSION",
1923-
"OWNER TO", "RENAME", "RESET (", "SET");
1930+
"NO DEPENDS ON EXTENSION", "OWNER TO", "RENAME",
1931+
"RESET (", "SET");
19241932
/* ALTER MATERIALIZED VIEW xxx RENAME */
19251933
else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "RENAME"))
19261934
COMPLETE_WITH_ATTR(prev2_wd, " UNION SELECT 'COLUMN' UNION SELECT 'TO'");
@@ -1997,7 +2005,8 @@ psql_completion(const char *text, int start, int end)
19972005

19982006
/* ALTER TRIGGER <name> ON <name> */
19992007
else if (Matches("ALTER", "TRIGGER", MatchAny, "ON", MatchAny))
2000-
COMPLETE_WITH("RENAME TO");
2008+
COMPLETE_WITH("RENAME TO", "DEPENDS ON EXTENSION",
2009+
"NO DEPENDS ON EXTENSION");
20012010

20022011
/*
20032012
* If we detect ALTER TABLE <name>, suggest sub commands

0 commit comments

Comments
 (0)