From 6ae4c8de00c382b10e851e1eaf7f5e19e143b251 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sat, 23 Jan 2016 06:57:42 -0500 Subject: [PATCH] psql: Improve completion of FDW DDL commands Add - ALTER FOREIGN DATA WRAPPER -> RENAME TO - ALTER SERVER -> RENAME TO - ALTER SERVER ... VERSION ... -> OPTIONS - CREATE FOREIGN DATA WRAPPER -> OPTIONS - CREATE SERVER -> OPTIONS - CREATE|ALTER USER MAPPING -> OPTIONS From: Andreas Karlsson --- src/bin/psql/tab-complete.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index f09e65c58d..ff6f7d1b6b 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1417,7 +1417,7 @@ psql_completion(const char *text, int start, int end) /* ALTER FOREIGN DATA WRAPPER */ else if (Matches5("ALTER", "FOREIGN", "DATA", "WRAPPER", MatchAny)) - COMPLETE_WITH_LIST4("HANDLER", "VALIDATOR", "OPTIONS", "OWNER TO"); + COMPLETE_WITH_LIST5("HANDLER", "VALIDATOR", "OPTIONS", "OWNER TO", "RENAME TO"); /* ALTER FOREIGN TABLE */ else if (Matches4("ALTER", "FOREIGN", "TABLE", MatchAny)) @@ -1544,7 +1544,10 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH_LIST3("MINVALUE", "MAXVALUE", "CYCLE"); /* ALTER SERVER */ else if (Matches3("ALTER", "SERVER", MatchAny)) - COMPLETE_WITH_LIST3("VERSION", "OPTIONS", "OWNER TO"); + COMPLETE_WITH_LIST4("VERSION", "OPTIONS", "OWNER TO", "RENAME TO"); + /* ALTER SERVER VERSION */ + else if (Matches5("ALTER", "SERVER", MatchAny, "VERSION", MatchAny)) + COMPLETE_WITH_CONST("OPTIONS"); /* ALTER SYSTEM SET, RESET, RESET ALL */ else if (Matches2("ALTER", "SYSTEM")) COMPLETE_WITH_LIST2("SET", "RESET"); @@ -2000,7 +2003,7 @@ psql_completion(const char *text, int start, int end) /* CREATE FOREIGN DATA WRAPPER */ else if (Matches5("CREATE", "FOREIGN", "DATA", "WRAPPER", MatchAny)) - COMPLETE_WITH_LIST2("HANDLER", "VALIDATOR"); + COMPLETE_WITH_LIST3("HANDLER", "VALIDATOR", "OPTIONS"); /* CREATE INDEX --- is allowed inside CREATE SCHEMA, so use TailMatches */ /* First off we complete CREATE UNIQUE with "INDEX" */ @@ -2379,6 +2382,10 @@ psql_completion(const char *text, int start, int end) else if (TailMatches3("FOREIGN", "DATA", "WRAPPER") && !TailMatches4("CREATE", MatchAny, MatchAny, MatchAny)) COMPLETE_WITH_QUERY(Query_for_list_of_fdws); + /* applies in CREATE SERVER */ + else if (TailMatches4("FOREIGN", "DATA", "WRAPPER", MatchAny) && + HeadMatches2("CREATE", "SERVER")) + COMPLETE_WITH_CONST("OPTIONS"); /* FOREIGN TABLE */ else if (TailMatches2("FOREIGN", "TABLE") && @@ -2823,6 +2830,8 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH_QUERY(Query_for_list_of_user_mappings); else if (Matches5("CREATE|ALTER|DROP", "USER", "MAPPING", "FOR", MatchAny)) COMPLETE_WITH_CONST("SERVER"); + else if (Matches7("CREATE|ALTER", "USER", "MAPPING", "FOR", MatchAny, "SERVER", MatchAny)) + COMPLETE_WITH_CONST("OPTIONS"); /* * VACUUM [ FULL | FREEZE ] [ VERBOSE ] [ table ] -- 2.40.0