Skip to content

Commit 2ea5de2

Browse files
committed
psql: Improve tab completion for ALTER TABLE on identity columns
- Add tab completion for ALTER SEQUENCE … START … - Add tab completion for ALTER COLUMN … SET GENERATED … - Add tab completion for ALTER COLUMN … SET <sequence option> - Add tab completion for ALTER COLUMN … ADD GENERATED … AS IDENTITY Author: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> Reviewed-by: Matheus Alcantara <mths.dev@pm.me> Discussion: https://www.postgresql.org/message-id/flat/87mta1jfax.fsf@wibble.ilmari.org
1 parent 0043aa6 commit 2ea5de2

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

src/bin/psql/tab-complete.c

+26-2
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@ psql_completion(const char *text, int start, int end)
21042104
/* ALTER SEQUENCE <name> */
21052105
else if (Matches("ALTER", "SEQUENCE", MatchAny))
21062106
COMPLETE_WITH("AS", "INCREMENT", "MINVALUE", "MAXVALUE", "RESTART",
2107-
"NO", "CACHE", "CYCLE", "SET", "OWNED BY",
2107+
"START", "NO", "CACHE", "CYCLE", "SET", "OWNED BY",
21082108
"OWNER TO", "RENAME TO");
21092109
/* ALTER SEQUENCE <name> AS */
21102110
else if (TailMatches("ALTER", "SEQUENCE", MatchAny, "AS"))
@@ -2381,10 +2381,26 @@ psql_completion(const char *text, int start, int end)
23812381
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny) ||
23822382
Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny))
23832383
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");
23842398
/* ALTER TABLE ALTER [COLUMN] <foo> SET */
23852399
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET") ||
23862400
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");
23882404
/* ALTER TABLE ALTER [COLUMN] <foo> SET ( */
23892405
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET", "(") ||
23902406
Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET", "("))
@@ -2393,6 +2409,14 @@ psql_completion(const char *text, int start, int end)
23932409
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET", "COMPRESSION") ||
23942410
Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET", "COMPRESSION"))
23952411
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");
23962420
/* ALTER TABLE ALTER [COLUMN] <foo> SET STORAGE */
23972421
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET", "STORAGE") ||
23982422
Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET", "STORAGE"))

0 commit comments

Comments
 (0)