From: Peter Eisentraut Date: Thu, 21 Jan 2016 02:27:46 +0000 (-0500) Subject: psql: Add tab completion for COPY with query X-Git-Tag: REL9_6_BETA1~839 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d0f2f53cd6f2f1fe6e53b8e3bfcce43c16ea851b;p=postgresql psql: Add tab completion for COPY with query From: Andreas Karlsson --- diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index c3c77bd587..f09e65c58d 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1934,11 +1934,18 @@ psql_completion(const char *text, int start, int end) /* COPY */ /* - * If we have COPY [BINARY] (which you'd have to type yourself), offer - * list of tables (Also cover the analogous backslash command) + * If we have COPY, offer list of tables or "(" (Also cover the analogous + * backslash command). */ - else if (Matches1("COPY|\\copy") || Matches2("COPY", "BINARY")) + else if (Matches1("COPY|\\copy")) + COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, + " UNION ALL SELECT '('"); + /* If we have COPY BINARY, complete with list of tables */ + else if (Matches2("COPY", "BINARY")) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL); + /* If we have COPY (, complete it with legal commands */ + else if (Matches2("COPY|\\copy", "(")) + COMPLETE_WITH_LIST7("SELECT", "TABLE", "VALUES", "INSERT", "UPDATE", "DELETE", "WITH"); /* If we have COPY [BINARY] , complete it with "TO" or "FROM" */ else if (Matches2("COPY|\\copy", MatchAny) || Matches3("COPY", "BINARY", MatchAny))