On 01/11/2016 02:01 AM, Peter Eisentraut wrote:
I think this would be a useful addition. A couple of problems:
Thanks for the review. A new version is attached.
This change in the comment doesn't make sense to me and doesn't seem to match the code: - /* If we have COPY [BINARY] <sth>, complete it with "TO" or "FROM" */ + /* If we have COPY|BINARY <sth>, complete it with "TO" or "FROM" */
Fixed. As Tom correctly guessed this was the result of a mistake when rebasing.
The list of commands to allow as the "query" inside the parentheses is documented to be: SELECT, VALUES, INSERT, UPDATE or DELETE; and actually TABLE should also work. Your list doesn't include all of those. So please adjust that.
Fixed. And TABLE works too. Andreas
commit 3b7a808e710e613f81abd0207847a3378ec3192c Author: Andreas Karlsson <andr...@proxel.se> Date: Sat Dec 12 17:38:19 2015 +0100 Improve COPY completion diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index ad8a580..c928ebf 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, compelete 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 (TailMatches2("COPY|\\copy", "(")) + COMPLETE_WITH_LIST6("SELECT", "TABLE", "WITH", "INSERT", "UPDATE", "DELETE"); /* If we have COPY [BINARY] <sth>, complete it with "TO" or "FROM" */ else if (Matches2("COPY|\\copy", MatchAny) || Matches3("COPY", "BINARY", MatchAny))
-- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers