@@ -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