Skip to content

Commit

Permalink
Improve tab completion of IMPORT FOREIGN SCHEMA in psql
Browse files Browse the repository at this point in the history
It is not possible to get a list of foreign schemas as the server is not
known, so this provides instead a list of local schemas, which is more
useful than nothing if using a loopback server or having schema names
matching in the local and remote servers.

Author: Jeff Janes
Reviewed-by: Tom Lane, Michael Paquier
Discussion: https://postgr.es/m/CAMkU=1wr7Roj41q-XiJs=Uyc2xCmHhcGGy7J-peJQK-e+w=ghw@mail.gmail.com
  • Loading branch information
michaelpq committed Sep 17, 2020
1 parent babef40 commit 7307df1
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/bin/psql/tab-complete.c
Expand Up @@ -3293,6 +3293,17 @@ psql_completion(const char *text, int start, int end)
COMPLETE_WITH("FOREIGN SCHEMA");
else if (Matches("IMPORT", "FOREIGN"))
COMPLETE_WITH("SCHEMA");
else if (Matches("IMPORT", "FOREIGN", "SCHEMA", MatchAny))
COMPLETE_WITH("EXCEPT (", "FROM SERVER", "LIMIT TO (");
else if (TailMatches("LIMIT", "TO", "(*)") ||
TailMatches("EXCEPT", "(*)"))
COMPLETE_WITH("FROM SERVER");
else if (TailMatches("FROM", "SERVER", MatchAny))
COMPLETE_WITH("INTO");
else if (TailMatches("FROM", "SERVER", MatchAny, "INTO"))
COMPLETE_WITH_QUERY(Query_for_list_of_schemas);
else if (TailMatches("FROM", "SERVER", MatchAny, "INTO", MatchAny))
COMPLETE_WITH("OPTIONS (");

/* INSERT --- can be inside EXPLAIN, RULE, etc */
/* Complete INSERT with "INTO" */
Expand Down

0 comments on commit 7307df1

Please sign in to comment.