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