pgsql: Improve tab completion for ANALYZE, EXPLAIN, and VACUUM.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Improve tab completion for ANALYZE, EXPLAIN, and VACUUM.
Дата
Msg-id E1g3R0a-0007ZH-N2@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Improve tab completion for ANALYZE, EXPLAIN, and VACUUM.

Previously, we made no attempt to provide tab completion in these
statements' optional parenthesized options lists.  This patch teaches
psql to do so.

To prevent the option completions from being offered after we've already
seen a complete parenthesized option list, it's necessary to improve
word_matches() so that it allows a wildcard '*' in the middle of an
alternative, not only at the end as formerly.  That requires only a
little more code than before, and it allows us to test for "incomplete
parenthesized options" with a test like

    else if (HeadMatches2("EXPLAIN", "(*") &&
             !HeadMatches2("EXPLAIN", "(*)"))

In addition, add some logic to offer column names in the context of
"ANALYZE tablename ( ...", and likewise for VACUUM.  This isn't real
complete; it won't offer column names again after a comma.  But it's
better than before, and it doesn't take much code.

Justin Pryzby, reviewed at various times by Álvaro Herrera, Arthur
Zakirov, and Edmund Horner; some additional fixups by me

Discussion: https://postgr.es/m/20180529000623.GA21896@telsasoft.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/121213d9d8527f880f153e4a032ee1a4cd43833f

Modified Files
--------------
src/bin/psql/tab-complete.c | 127 ++++++++++++++++++++++++++++++--------------
1 file changed, 87 insertions(+), 40 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Rationalize Query_for_list_of_[relations] query names intab-com
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix bogus tab-completion rule for CREATE PUBLICATION.