Hi,
Here is a patch which adds tab completion for COPY with a query.
Currently there is only completion for COPY with a relation.
Andreas
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 98884eb..98023ca 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1857,11 +1857,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 (TailMatches1("COPY|\\copy") || TailMatches2("COPY", "BINARY"))
+ else if (TailMatches1("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 (TailMatches2("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_LIST4("SELECT", "WITH", "UPDATE", "DELETE");
/* If we have COPY|BINARY <sth>, complete it with "TO" or "FROM" */
else if (TailMatches2("COPY|\\copy|BINARY", MatchAny))
COMPLETE_WITH_LIST2("FROM", "TO");
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers