From: Tomas Vondra Date: Tue, 27 Nov 2018 23:48:51 +0000 (+0100) Subject: Use wildcard to match parens after CREATE STATISTICS X-Git-Tag: REL_12_BETA1~1135 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d1ce4ed2d56e42531581bb83e769a8840c591e15;p=postgresql Use wildcard to match parens after CREATE STATISTICS CREATE STATISTICS completion was checking manually for the start and end of the parenthesised list of types. That works, but we now have a better way to do that as commit 121213d9d taught word_matches() to allow '*' in the middle of an alternative. But it only applied that to tab completion for EXPLAIN, ANALYZE and VACUUM. Use it for CREATE STATISTICS too. Author: Dagfinn Ilmari Mannsåker Discussion: https://www.postgresql.org/message-id/flat/d8jwooziy1s.fsf%40dalvik.ping.uio.no --- diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 7993c05283..fa44b2820b 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -2390,9 +2390,7 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH("(", "ON"); else if (Matches("CREATE", "STATISTICS", MatchAny, "(")) COMPLETE_WITH("ndistinct", "dependencies"); - else if (HeadMatches("CREATE", "STATISTICS", MatchAny) && - previous_words[0][0] == '(' && - previous_words[0][strlen(previous_words[0]) - 1] == ')') + else if (Matches("CREATE", "STATISTICS", MatchAny, "(*)")) COMPLETE_WITH("ON"); else if (HeadMatches("CREATE", "STATISTICS", MatchAny) && TailMatches("FROM"))