Обсуждение: ALTER TEXT SEARCH DICTIONARY tab completion

Поиск
Список
Период
Сортировка

ALTER TEXT SEARCH DICTIONARY tab completion

От
Jeff Janes
Дата:
"ALTER TEXT SEARCH DICTIONARY foobar" can be followed by an open parenthesis, but that is not offered in tab completion.  That is useful, because otherwise I have to look up the docs to see if I need a SET or OPTION(S) or WITH or something before it, just to discover I don't.

The attached one-line patch adds "(".

We can't go beyond that, as available options for each dictionary are not known in advance.

Cheers,

Jeff

Вложения

Re: ALTER TEXT SEARCH DICTIONARY tab completion

От
Georgios Kokolatos
Дата:
The following review has been posted through the commitfest application:
make installcheck-world:  not tested
Implements feature:       not tested
Spec compliant:           not tested
Documentation:            not tested

It looks good and does what it says on the tin.

One minor nitpick I feel I should add is that for completeness and
balance the equivalent `CREATE TEXT SEARCH DICTIONARY` should 
get the same treatment.

Maybe something along the lines of:
-       else if (Matches("CREATE", "TEXT", "SEARCH", "CONFIGURATION", MatchAny))
+       else if (Matches("CREATE", "TEXT", "SEARCH", "DICTIONARY|CONFIGURATION", MatchAny))

Re: ALTER TEXT SEARCH DICTIONARY tab completion

От
Tom Lane
Дата:
Georgios Kokolatos <gkokolatos@pm.me> writes:
> One minor nitpick I feel I should add is that for completeness and
> balance the equivalent `CREATE TEXT SEARCH DICTIONARY` should
> get the same treatment.

> Maybe something along the lines of:
> -       else if (Matches("CREATE", "TEXT", "SEARCH", "CONFIGURATION", MatchAny))
> +       else if (Matches("CREATE", "TEXT", "SEARCH", "DICTIONARY|CONFIGURATION", MatchAny))

Agreed; actually all four CREATE TEXT SEARCH commands could do that.
I pushed it as attached.

            regards, tom lane

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 54d0317..17b1f29 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2140,7 +2140,7 @@ psql_completion(const char *text, int start, int end)
     else if (Matches("ALTER", "TEXT", "SEARCH", "TEMPLATE|PARSER", MatchAny))
         COMPLETE_WITH("RENAME TO", "SET SCHEMA");
     else if (Matches("ALTER", "TEXT", "SEARCH", "DICTIONARY", MatchAny))
-        COMPLETE_WITH("OWNER TO", "RENAME TO", "SET SCHEMA");
+        COMPLETE_WITH("(", "OWNER TO", "RENAME TO", "SET SCHEMA");
     else if (Matches("ALTER", "TEXT", "SEARCH", "CONFIGURATION", MatchAny))
         COMPLETE_WITH("ADD MAPPING FOR", "ALTER MAPPING",
                       "DROP MAPPING FOR",
@@ -2635,7 +2635,7 @@ psql_completion(const char *text, int start, int end)
 /* CREATE TEXT SEARCH */
     else if (Matches("CREATE", "TEXT", "SEARCH"))
         COMPLETE_WITH("CONFIGURATION", "DICTIONARY", "PARSER", "TEMPLATE");
-    else if (Matches("CREATE", "TEXT", "SEARCH", "CONFIGURATION", MatchAny))
+    else if (Matches("CREATE", "TEXT", "SEARCH", "CONFIGURATION|DICTIONARY|PARSER|TEMPLATE", MatchAny))
         COMPLETE_WITH("(");

 /* CREATE SUBSCRIPTION */