/* ALTER TYPE ALTER ATTRIBUTE <foo> */
else if (Matches("ALTER", "TYPE", MatchAny, "ALTER", "ATTRIBUTE", MatchAny))
COMPLETE_WITH("TYPE");
+ /* complete ALTER TYPE <sth> RENAME VALUE with list of enum values */
+ else if (Matches("ALTER", "TYPE", MatchAny, "RENAME", "VALUE"))
+ COMPLETE_WITH_ENUM_VALUE(prev3_wd);
+ /* ALTER TYPE <foo> SET */
+ else if (Matches("ALTER", "TYPE", MatchAny, "SET"))
+ COMPLETE_WITH("(", "SCHEMA");
+ /* complete ALTER TYPE <foo> SET ( with settable properties */
+ else if (Matches("ALTER", "TYPE", MatchAny, "SET", "("))
+ COMPLETE_WITH("ANALYZE", "RECEIVE", "SEND", "STORAGE", "SUBSCRIPT",
+ "TYPMOD_IN", "TYPMOD_OUT");
+
/* complete ALTER GROUP <foo> */
else if (Matches("ALTER", "GROUP", MatchAny))
COMPLETE_WITH("ADD USER", "DROP USER", "RENAME TO");
else if (Matches("ALTER", "GROUP", MatchAny, "ADD|DROP", "USER"))
COMPLETE_WITH_QUERY(Query_for_list_of_roles);
- /*
- * If we have ALTER TYPE <sth> RENAME VALUE, provide list of enum values
- */
- else if (Matches("ALTER", "TYPE", MatchAny, "RENAME", "VALUE"))
- COMPLETE_WITH_ENUM_VALUE(prev3_wd);
-
/*
* ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
* ANALYZE [ VERBOSE ] [ table_and_columns [, ...] ]