@@ -2582,6 +2582,17 @@ psql_completion(const char *text, int start, int end)
2582
2582
else if (Matches ("CREATE" , "DATABASE" , MatchAny , "TEMPLATE" ))
2583
2583
COMPLETE_WITH_QUERY (Query_for_list_of_template_databases );
2584
2584
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
+
2585
2596
/* CREATE EXTENSION */
2586
2597
/* Complete with available extensions rather than installed ones. */
2587
2598
else if (Matches ("CREATE" , "EXTENSION" ))
@@ -2805,8 +2816,11 @@ psql_completion(const char *text, int start, int end)
2805
2816
/* CREATE SEQUENCE --- is allowed inside CREATE SCHEMA, so use TailMatches */
2806
2817
else if (TailMatches ("CREATE" , "SEQUENCE" , MatchAny ) ||
2807
2818
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" );
2810
2824
else if (TailMatches ("CREATE" , "SEQUENCE" , MatchAny , "NO" ) ||
2811
2825
TailMatches ("CREATE" , "TEMP|TEMPORARY" , "SEQUENCE" , MatchAny , "NO" ))
2812
2826
COMPLETE_WITH ("MINVALUE" , "MAXVALUE" , "CYCLE" );
@@ -2882,6 +2896,23 @@ psql_completion(const char *text, int start, int end)
2882
2896
else if (Matches ("CREATE" , "TEXT" , "SEARCH" , "CONFIGURATION|DICTIONARY|PARSER|TEMPLATE" , MatchAny ))
2883
2897
COMPLETE_WITH ("(" );
2884
2898
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
+
2885
2916
/* CREATE SUBSCRIPTION */
2886
2917
else if (Matches ("CREATE" , "SUBSCRIPTION" , MatchAny ))
2887
2918
COMPLETE_WITH ("CONNECTION" );
0 commit comments