@@ -2582,6 +2582,17 @@ psql_completion(const char *text, int start, int end)
25822582 else if (Matches ("CREATE" , "DATABASE" , MatchAny , "TEMPLATE" ))
25832583 COMPLETE_WITH_QUERY (Query_for_list_of_template_databases );
25842584
2585+ /* CREATE DOMAIN */
2586+ else if (Matches ("CREATE" , "DOMAIN" , MatchAny ))
2587+ COMPLETE_WITH ("AS" );
2588+ else if (Matches ("CREATE" , "DOMAIN" , MatchAny , "AS" ))
2589+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_datatypes , NULL );
2590+ else if (Matches ("CREATE" , "DOMAIN" , MatchAny , "AS" , MatchAny ))
2591+ COMPLETE_WITH ("COLLATE" , "DEFAULT" , "CONSTRAINT" ,
2592+ "NOT NULL" , "NULL" , "CHECK (" );
2593+ else if (Matches ("CREATE" , "DOMAIN" , MatchAny , "COLLATE" ))
2594+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_collations , NULL );
2595+
25852596 /* CREATE EXTENSION */
25862597 /* Complete with available extensions rather than installed ones. */
25872598 else if (Matches ("CREATE" , "EXTENSION" ))
@@ -2805,8 +2816,11 @@ psql_completion(const char *text, int start, int end)
28052816/* CREATE SEQUENCE --- is allowed inside CREATE SCHEMA, so use TailMatches */
28062817 else if (TailMatches ("CREATE" , "SEQUENCE" , MatchAny ) ||
28072818 TailMatches ("CREATE" , "TEMP|TEMPORARY" , "SEQUENCE" , MatchAny ))
2808- COMPLETE_WITH ("INCREMENT BY" , "MINVALUE" , "MAXVALUE" , "NO" , "CACHE" ,
2809- "CYCLE" , "OWNED BY" , "START WITH" );
2819+ COMPLETE_WITH ("AS" , "INCREMENT BY" , "MINVALUE" , "MAXVALUE" , "NO" ,
2820+ "CACHE" , "CYCLE" , "OWNED BY" , "START WITH" );
2821+ else if (TailMatches ("CREATE" , "SEQUENCE" , MatchAny , "AS" ) ||
2822+ TailMatches ("CREATE" , "TEMP|TEMPORARY" , "SEQUENCE" , MatchAny , "AS" ))
2823+ COMPLETE_WITH_CS ("smallint" , "integer" , "bigint" );
28102824 else if (TailMatches ("CREATE" , "SEQUENCE" , MatchAny , "NO" ) ||
28112825 TailMatches ("CREATE" , "TEMP|TEMPORARY" , "SEQUENCE" , MatchAny , "NO" ))
28122826 COMPLETE_WITH ("MINVALUE" , "MAXVALUE" , "CYCLE" );
@@ -2882,6 +2896,23 @@ psql_completion(const char *text, int start, int end)
28822896 else if (Matches ("CREATE" , "TEXT" , "SEARCH" , "CONFIGURATION|DICTIONARY|PARSER|TEMPLATE" , MatchAny ))
28832897 COMPLETE_WITH ("(" );
28842898
2899+ /* CREATE TRANSFORM */
2900+ else if (Matches ("CREATE" , "TRANSFORM" ) ||
2901+ Matches ("CREATE" , "OR" , "REPLACE" , "TRANSFORM" ))
2902+ COMPLETE_WITH ("FOR" );
2903+ else if (Matches ("CREATE" , "TRANSFORM" , "FOR" ) ||
2904+ Matches ("CREATE" ,"OR" , "REPLACE" , "TRANSFORM" , "FOR" ))
2905+ COMPLETE_WITH_SCHEMA_QUERY (Query_for_list_of_datatypes , NULL );
2906+ else if (Matches ("CREATE" , "TRANSFORM" , "FOR" , MatchAny ) ||
2907+ Matches ("CREATE" , "OR" , "REPLACE" , "TRANSFORM" , "FOR" , MatchAny ))
2908+ COMPLETE_WITH ("LANGUAGE" );
2909+ else if (Matches ("CREATE" , "TRANSFORM" , "FOR" , MatchAny , "LANGUAGE" ) ||
2910+ Matches ("CREATE" , "OR" , "REPLACE" , "TRANSFORM" , "FOR" , MatchAny , "LANGUAGE" ))
2911+ {
2912+ completion_info_charp = prev2_wd ;
2913+ COMPLETE_WITH_QUERY (Query_for_list_of_languages );
2914+ }
2915+
28852916/* CREATE SUBSCRIPTION */
28862917 else if (Matches ("CREATE" , "SUBSCRIPTION" , MatchAny ))
28872918 COMPLETE_WITH ("CONNECTION" );
0 commit comments