pgsql: In psql's tab completion, change most TailMatches patterns to Ma

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: In psql's tab completion, change most TailMatches patterns to Ma
Дата
Msg-id E1aGG6i-0003Wk-Ov@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
In psql's tab completion, change most TailMatches patterns to Matches.

In the refactoring in commit d37b816dc9e8f976c8913296781e08cbd45c5af1,
we mostly kept to the original design whereby only the last few words
on the line were matched to identify a completable pattern.  However,
after commit d854118c8df8c413d069f7e88bb01b9e18e4c8ed, there's really
no reason to do it like that: where it's sensible, we can use patterns
that expect to match the entire input line.  And mostly, it's sensible.
Matching the entire line greatly reduces the odds of a false match that
leads to offering irrelevant completions.  Moreover (though I've not
tried to measure this), it should make tab completion faster since
many of the patterns will be discarded after a single integer comparison
that finds that the wrong number of words appear on the line.

There are certain identifiable places where we still need to use
TailMatches because the statement in question is allowed to appear
embedded in a larger statement.  These are just a small minority of
the existing patterns, though, so the benefit of switching where
possible is large.

It's possible that this patch has removed some within-line matching
behaviors that are in fact desirable, but we can put those back when
we get complaints.  Most of the removed behaviors are certainly silly.

Michael Paquier, with some further adjustments by me

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/9b181b0363deb65b15a9feaf3eb74f86707498a9

Modified Files
--------------
src/bin/psql/tab-complete.c |  704 +++++++++++++++++++++----------------------
1 file changed, 341 insertions(+), 363 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix treatment of *lpNumberOfBytesRecvd == 0: that's a completion
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Convert psql's tab completion for backslash commands to the new