@@ -1614,14 +1614,24 @@ psql_completion(const char *text, int start, int end)
1614
1614
/* ALTER AGGREGATE,FUNCTION,PROCEDURE,ROUTINE <name> */
1615
1615
else if (Matches ("ALTER" , "AGGREGATE|FUNCTION|PROCEDURE|ROUTINE" , MatchAny ))
1616
1616
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 ))
1619
1619
{
1620
1620
if (ends_with (prev_wd , ')' ))
1621
1621
COMPLETE_WITH ("OWNER TO" , "RENAME TO" , "SET SCHEMA" );
1622
1622
else
1623
1623
COMPLETE_WITH_FUNCTION_ARG (prev2_wd );
1624
1624
}
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
+
1625
1635
/* ALTER PUBLICATION <name> */
1626
1636
else if (Matches ("ALTER" , "PUBLICATION" , MatchAny ))
1627
1637
COMPLETE_WITH ("ADD TABLE" , "DROP TABLE" , "OWNER TO" , "RENAME TO" , "SET" );
@@ -1735,7 +1745,8 @@ psql_completion(const char *text, int start, int end)
1735
1745
/* ALTER INDEX <name> */
1736
1746
else if (Matches ("ALTER" , "INDEX" , MatchAny ))
1737
1747
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" ,
1739
1750
"ALTER COLLATION" );
1740
1751
else if (Matches ("ALTER" , "INDEX" , MatchAny , "ATTACH" ))
1741
1752
COMPLETE_WITH ("PARTITION" );
@@ -1782,10 +1793,6 @@ psql_completion(const char *text, int start, int end)
1782
1793
"buffering =" , /* GiST */
1783
1794
"pages_per_range =" , "autosummarize =" /* BRIN */
1784
1795
);
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" );
1789
1796
/* ALTER INDEX <name> ALTER COLLATION */
1790
1797
else if (Matches ("ALTER" , "INDEX" , MatchAny , "ALTER" , "COLLATION" ))
1791
1798
{
@@ -1920,7 +1927,8 @@ psql_completion(const char *text, int start, int end)
1920
1927
/* ALTER MATERIALIZED VIEW <name> */
1921
1928
else if (Matches ("ALTER" , "MATERIALIZED" , "VIEW" , MatchAny ))
1922
1929
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" );
1924
1932
/* ALTER MATERIALIZED VIEW xxx RENAME */
1925
1933
else if (Matches ("ALTER" , "MATERIALIZED" , "VIEW" , MatchAny , "RENAME" ))
1926
1934
COMPLETE_WITH_ATTR (prev2_wd , " UNION SELECT 'COLUMN' UNION SELECT 'TO'" );
@@ -1997,7 +2005,8 @@ psql_completion(const char *text, int start, int end)
1997
2005
1998
2006
/* ALTER TRIGGER <name> ON <name> */
1999
2007
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" );
2001
2010
2002
2011
/*
2003
2012
* If we detect ALTER TABLE <name>, suggest sub commands
0 commit comments