mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Add tab-completion for ALTER TABLE not-nulls
The command is: ALTER TABLE x ADD [CONSTRAINT y] NOT NULL z
This syntax was added in 18, but I got pushback for getting commit
dbf42b84ac
in 18 (also tab-completion for new syntax) after the
feature freeze, so I'll put this in master only for now.
Author: Álvaro Herrera <alvherre@kurilemu.de>
Reported-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Discussion: https://postgr.es/m/d4f14c6b-086b-463c-b15f-01c7c9728eab@oss.nttdata.com
Discussion: https://postgr.es/m/202505111448.bwbfomrymq4b@alvherre.pgsql
This commit is contained in:
@ -2733,17 +2733,24 @@ match_previous_words(int pattern_id,
|
||||
/* ALTER TABLE xxx ADD */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD"))
|
||||
{
|
||||
/* make sure to keep this list and the !Matches() below in sync */
|
||||
COMPLETE_WITH("COLUMN", "CONSTRAINT", "CHECK", "UNIQUE", "PRIMARY KEY",
|
||||
"EXCLUDE", "FOREIGN KEY");
|
||||
/*
|
||||
* make sure to keep this list and the MatchAnyExcept() below in sync
|
||||
*/
|
||||
COMPLETE_WITH("COLUMN", "CONSTRAINT", "CHECK (", "NOT NULL", "UNIQUE",
|
||||
"PRIMARY KEY", "EXCLUDE", "FOREIGN KEY");
|
||||
}
|
||||
/* ALTER TABLE xxx ADD [COLUMN] yyy */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD", "COLUMN", MatchAny) ||
|
||||
Matches("ALTER", "TABLE", MatchAny, "ADD", MatchAnyExcept("COLUMN|CONSTRAINT|CHECK|UNIQUE|PRIMARY|EXCLUDE|FOREIGN")))
|
||||
Matches("ALTER", "TABLE", MatchAny, "ADD", MatchAnyExcept("COLUMN|CONSTRAINT|CHECK|UNIQUE|PRIMARY|NOT|EXCLUDE|FOREIGN")))
|
||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_datatypes);
|
||||
/* ALTER TABLE xxx ADD CONSTRAINT yyy */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD", "CONSTRAINT", MatchAny))
|
||||
COMPLETE_WITH("CHECK", "UNIQUE", "PRIMARY KEY", "EXCLUDE", "FOREIGN KEY");
|
||||
COMPLETE_WITH("CHECK (", "NOT NULL", "UNIQUE", "PRIMARY KEY", "EXCLUDE", "FOREIGN KEY");
|
||||
/* ALTER TABLE xxx ADD NOT NULL */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD", "NOT", "NULL"))
|
||||
COMPLETE_WITH_ATTR(prev4_wd);
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD", "CONSTRAINT", MatchAny, "NOT", "NULL"))
|
||||
COMPLETE_WITH_ATTR(prev6_wd);
|
||||
/* ALTER TABLE xxx ADD [CONSTRAINT yyy] (PRIMARY KEY|UNIQUE) */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD", "PRIMARY", "KEY") ||
|
||||
Matches("ALTER", "TABLE", MatchAny, "ADD", "UNIQUE") ||
|
||||
|
Reference in New Issue
Block a user