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

Lines changed: 26 additions & 2 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy