@@ -1614,14 +1614,24 @@ psql_completion(const char *text, int start, int end)
16141614/* ALTER AGGREGATE,FUNCTION,PROCEDURE,ROUTINE <name> */
16151615else if (Matches ("ALTER" ,"AGGREGATE|FUNCTION|PROCEDURE|ROUTINE" ,MatchAny ))
16161616COMPLETE_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{
16201620if (ends_with (prev_wd ,')' ))
16211621COMPLETE_WITH ("OWNER TO" ,"RENAME TO" ,"SET SCHEMA" );
16221622else
16231623COMPLETE_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> */
16261636else if (Matches ("ALTER" ,"PUBLICATION" ,MatchAny ))
16271637COMPLETE_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> */
17361746else if (Matches ("ALTER" ,"INDEX" ,MatchAny ))
17371747COMPLETE_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" );
17401751else if (Matches ("ALTER" ,"INDEX" ,MatchAny ,"ATTACH" ))
17411752COMPLETE_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 */
17901797else 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> */
19211928else if (Matches ("ALTER" ,"MATERIALIZED" ,"VIEW" ,MatchAny ))
19221929COMPLETE_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 */
19251933else if (Matches ("ALTER" ,"MATERIALIZED" ,"VIEW" ,MatchAny ,"RENAME" ))
19261934COMPLETE_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> */
19992007else 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