While reviewing the patch for tab completion after SELECT, I realized
that psql doesn't know how to complete after FROM if the ONLY keyword is
present.
This trivial patch fixes that, as well as JOIN ONLY and TABLE ONLY.
--
Vik Fearing +33 6 46 75 15 36
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 8bc4a194a5..68b155c778 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3359,7 +3359,7 @@ psql_completion(const char *text, int start, int end)
COMPLETE_WITH_CONST("TRANSACTION");
/* TABLE, but not TABLE embedded in other commands */
- else if (Matches1("TABLE"))
+ else if (Matches1("TABLE") || Matches2("TABLE", "ONLY"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_relations, NULL);
/* TABLESAMPLE */
@@ -3455,11 +3455,11 @@ psql_completion(const char *text, int start, int end)
/* ... FROM ... */
/* TODO: also include SRF ? */
- else if (TailMatches1("FROM") && !Matches3("COPY|\\copy", MatchAny, "FROM"))
+ else if ((TailMatches1("FROM") || TailMatches2("FROM", "ONLY")) && !Matches3("COPY|\\copy", MatchAny, "FROM"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tsvmf, NULL);
/* ... JOIN ... */
- else if (TailMatches1("JOIN"))
+ else if (TailMatches1("JOIN") || TailMatches2("JOIN", "ONLY"))
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tsvmf, NULL);
/* Backslash commands */