On 01/04/2016 07:26 AM, Michael Paquier wrote:
You may want to use Matches() instead of TailMatches() for performance reasons.
Here is an updated version which uses Matches(). Andreas
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 4d2bee1..34dabc5 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1544,7 +1544,7 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH_LIST3("MINVALUE", "MAXVALUE", "CYCLE"); /* ALTER SERVER <name> */ else if (Matches3("ALTER", "SERVER", MatchAny)) - COMPLETE_WITH_LIST3("VERSION", "OPTIONS", "OWNER TO"); + COMPLETE_WITH_LIST4("VERSION", "OPTIONS", "OWNER TO", "RENAME TO"); /* ALTER SYSTEM SET, RESET, RESET ALL */ else if (Matches2("ALTER", "SYSTEM")) COMPLETE_WITH_LIST2("SET", "RESET"); @@ -2095,8 +2095,12 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH_LIST3("MINVALUE", "MAXVALUE", "CYCLE"); /* CREATE SERVER <name> */ + /* Complete "CREATE SERVER <name>" with "FOREIGN DATA WRAPPER" */ else if (Matches3("CREATE", "SERVER", MatchAny)) COMPLETE_WITH_LIST3("TYPE", "VERSION", "FOREIGN DATA WRAPPER"); + /* Complete "CREATE SERVER <name> FOREIGN DATA WRAPPER" with fdw name */ + else if (Matches6("CREATE", "SERVER", MatchAny, "FOREIGN", "DATA", "WRAPPER")) + COMPLETE_WITH_QUERY(Query_for_list_of_fdws); /* CREATE TABLE --- is allowed inside CREATE SCHEMA, so use TailMatches */ /* Complete "CREATE TEMP/TEMPORARY" with the possible temp objects */ @@ -2803,6 +2807,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 ]
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers