@@ -2104,7 +2104,7 @@ psql_completion(const char *text, int start, int end)
2104
2104
/* ALTER SEQUENCE <name> */
2105
2105
else if (Matches ("ALTER" ,"SEQUENCE" ,MatchAny ))
2106
2106
COMPLETE_WITH ("AS" ,"INCREMENT" ,"MINVALUE" ,"MAXVALUE" ,"RESTART" ,
2107
- "NO" ,"CACHE" ,"CYCLE" ,"SET" ,"OWNED BY" ,
2107
+ "START" , " NO" ,"CACHE" ,"CYCLE" ,"SET" ,"OWNED BY" ,
2108
2108
"OWNER TO" ,"RENAME TO" );
2109
2109
/* ALTER SEQUENCE <name> AS */
2110
2110
else if (TailMatches ("ALTER" ,"SEQUENCE" ,MatchAny ,"AS" ))
@@ -2381,10 +2381,26 @@ psql_completion(const char *text, int start, int end)
2381
2381
else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny )||
2382
2382
Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ))
2383
2383
COMPLETE_WITH ("TYPE" ,"SET" ,"RESET" ,"RESTART" ,"ADD" ,"DROP" );
2384
+ /* ALTER TABLE ALTER [COLUMN] <foo> ADD */
2385
+ else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"ADD" )||
2386
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"ADD" ))
2387
+ COMPLETE_WITH ("GENERATED" );
2388
+ /* ALTER TABLE ALTER [COLUMN] <foo> ADD GENERATED */
2389
+ else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"ADD" ,"GENERATED" )||
2390
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"ADD" ,"GENERATED" ))
2391
+ COMPLETE_WITH ("ALWAYS" ,"BY DEFAULT" );
2392
+ /* ALTER TABLE ALTER [COLUMN] <foo> ADD GENERATED */
2393
+ else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"ADD" ,"GENERATED" ,"ALWAYS" )||
2394
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"ADD" ,"GENERATED" ,"ALWAYS" )||
2395
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"ADD" ,"GENERATED" ,"BY" ,"DEFAULT" )||
2396
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"ADD" ,"GENERATED" ,"BY" ,"DEFAULT" ))
2397
+ COMPLETE_WITH ("AS IDENTITY" );
2384
2398
/* ALTER TABLE ALTER [COLUMN] <foo> SET */
2385
2399
else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"SET" )||
2386
2400
Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"SET" ))
2387
- COMPLETE_WITH ("(" ,"COMPRESSION" ,"DEFAULT" ,"NOT NULL" ,"STATISTICS" ,"STORAGE" );
2401
+ COMPLETE_WITH ("(" ,"COMPRESSION" ,"DEFAULT" ,"GENERATED" ,"NOT NULL" ,"STATISTICS" ,"STORAGE" ,
2402
+ /* a subset of ALTER SEQUENCE options */
2403
+ "INCREMENT" ,"MINVALUE" ,"MAXVALUE" ,"START" ,"NO" ,"CACHE" ,"CYCLE" );
2388
2404
/* ALTER TABLE ALTER [COLUMN] <foo> SET ( */
2389
2405
else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"SET" ,"(" )||
2390
2406
Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"SET" ,"(" ))
@@ -2393,6 +2409,14 @@ psql_completion(const char *text, int start, int end)
2393
2409
else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"SET" ,"COMPRESSION" )||
2394
2410
Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"SET" ,"COMPRESSION" ))
2395
2411
COMPLETE_WITH ("DEFAULT" ,"PGLZ" ,"LZ4" );
2412
+ /* ALTER TABLE ALTER [COLUMN] <foo> SET GENERATED */
2413
+ else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"SET" ,"GENERATED" )||
2414
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"SET" ,"GENERATED" ))
2415
+ COMPLETE_WITH ("ALWAYS" ,"BY DEFAULT" );
2416
+ /* ALTER TABLE ALTER [COLUMN] <foo> SET NO */
2417
+ else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"SET" ,"NO" )||
2418
+ Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"SET" ,"NO" ))
2419
+ COMPLETE_WITH ("MINVALUE" ,"MAXVALUE" ,"CYCLE" );
2396
2420
/* ALTER TABLE ALTER [COLUMN] <foo> SET STORAGE */
2397
2421
else if (Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,"COLUMN" ,MatchAny ,"SET" ,"STORAGE" )||
2398
2422
Matches ("ALTER" ,"TABLE" ,MatchAny ,"ALTER" ,MatchAny ,"SET" ,"STORAGE" ))