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
This commit is contained in:
Tomas Vondra 2018-11-28 00:48:51 +01:00
parent d67dae036b
commit d1ce4ed2d5

View File

@ -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"))