mirror of
https://github.com/postgres/postgres.git
synced 2025-05-06 19:59:18 +03:00
Tab completion for CREATE TYPE.
Author: Thomas Munro Reviewed-by: Kyotaro Horiguchi Discussion: https://postgr.es/m/CA%2BhUKGLk%3D0yLDjfviONJLzcHEzygj%3Dx6VbGH43LnXbBUvQb52g%40mail.gmail.com
This commit is contained in:
parent
b91dd9de5e
commit
7bdc6556fb
@ -2686,6 +2686,45 @@ psql_completion(const char *text, int start, int end)
|
|||||||
else if (Matches("CREATE", "ROLE|USER|GROUP", MatchAny, "IN"))
|
else if (Matches("CREATE", "ROLE|USER|GROUP", MatchAny, "IN"))
|
||||||
COMPLETE_WITH("GROUP", "ROLE");
|
COMPLETE_WITH("GROUP", "ROLE");
|
||||||
|
|
||||||
|
/* CREATE TYPE */
|
||||||
|
else if (Matches("CREATE", "TYPE", MatchAny))
|
||||||
|
COMPLETE_WITH("(", "AS");
|
||||||
|
else if (Matches("CREATE", "TYPE", MatchAny, "AS"))
|
||||||
|
COMPLETE_WITH("ENUM", "RANGE", "(");
|
||||||
|
else if (HeadMatches("CREATE", "TYPE", MatchAny, "AS", "("))
|
||||||
|
{
|
||||||
|
if (TailMatches("(|*,", MatchAny))
|
||||||
|
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_datatypes, NULL);
|
||||||
|
else if (TailMatches("(|*,", MatchAny, MatchAnyExcept("*)")))
|
||||||
|
COMPLETE_WITH("COLLATE", ",", ")");
|
||||||
|
}
|
||||||
|
else if (Matches("CREATE", "TYPE", MatchAny, "AS", "ENUM|RANGE"))
|
||||||
|
COMPLETE_WITH("(");
|
||||||
|
else if (HeadMatches("CREATE", "TYPE", MatchAny, "("))
|
||||||
|
{
|
||||||
|
if (TailMatches("(|*,"))
|
||||||
|
COMPLETE_WITH("INPUT", "OUTPUT", "RECEIVE", "SEND",
|
||||||
|
"TYPMOD_IN", "TYPMOD_OUT", "ANALYZE",
|
||||||
|
"INTERNALLENGTH", "PASSBYVALUE", "ALIGNMENT",
|
||||||
|
"STORAGE", "LIKE", "CATEGORY", "PREFERRED",
|
||||||
|
"DEFAULT", "ELEMENT", "DELIMITER",
|
||||||
|
"COLLATABLE");
|
||||||
|
else if (TailMatches("(*|*,", MatchAnyExcept("*=")))
|
||||||
|
COMPLETE_WITH("=");
|
||||||
|
else if (TailMatches("=", MatchAnyExcept("*)")))
|
||||||
|
COMPLETE_WITH(",", ")");
|
||||||
|
}
|
||||||
|
else if (HeadMatches("CREATE", "TYPE", MatchAny, "AS", "RANGE", "("))
|
||||||
|
{
|
||||||
|
if (TailMatches("(|*,"))
|
||||||
|
COMPLETE_WITH("SUBTYPE", "SUBTYPE_OPCLASS", "COLLATION",
|
||||||
|
"CANONICAL", "SUBTYPE_DIFF");
|
||||||
|
else if (TailMatches("(*|*,", MatchAnyExcept("*=")))
|
||||||
|
COMPLETE_WITH("=");
|
||||||
|
else if (TailMatches("=", MatchAnyExcept("*)")))
|
||||||
|
COMPLETE_WITH(",", ")");
|
||||||
|
}
|
||||||
|
|
||||||
/* CREATE VIEW --- is allowed inside CREATE SCHEMA, so use TailMatches */
|
/* CREATE VIEW --- is allowed inside CREATE SCHEMA, so use TailMatches */
|
||||||
/* Complete CREATE VIEW <name> with AS */
|
/* Complete CREATE VIEW <name> with AS */
|
||||||
else if (TailMatches("CREATE", "VIEW", MatchAny))
|
else if (TailMatches("CREATE", "VIEW", MatchAny))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user