[COMMITTERS] pgsql: Ensure that a tsquery like '!foo' matches empty tsvectors.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема [COMMITTERS] pgsql: Ensure that a tsquery like '!foo' matches empty tsvectors.
Дата
Msg-id E1cWngj-0004Or-23@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Ensure that a tsquery like '!foo' matches empty tsvectors.

!foo means "the tsvector does not contain foo", and therefore it should
match an empty tsvector.  ts_match_vq() overenthusiastically supposed
that an empty tsvector could never match any query, so it forcibly
returned FALSE, the wrong answer.  Remove the premature optimization.

Our behavior on this point was inconsistent, because while seqscans and
GIST index searches both failed to match empty tsvectors, GIN index
searches would find them, since GIN scans don't rely on ts_match_vq().
That makes this certainly a bug, not a debatable definition disagreement,
so back-patch to all supported branches.

Report and diagnosis by Tom Dunstan (bug #14515); added test cases by me.

Discussion: https://postgr.es/m/20170126025524.1434.97828@wrigleys.postgresql.org

Branch
------
REL9_6_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/2dfc12647138deadabfc32123692021b7dd9a94f

Modified Files
--------------
src/backend/utils/adt/tsvector_op.c   |   3 +-
src/test/regress/expected/tsearch.out | 137 ++++++++++++++++++++++++++++++++++
src/test/regress/expected/tstypes.out |  12 +++
src/test/regress/sql/tsearch.sql      |  33 ++++++++
src/test/regress/sql/tstypes.sql      |   2 +
5 files changed, 186 insertions(+), 1 deletion(-)


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

Предыдущее
От: Fujii Masao
Дата:
Сообщение: [COMMITTERS] pgsql: Fix typo in description for pg_replication_origin_advancefuncti
Следующее
От: Simon Riggs
Дата:
Сообщение: [COMMITTERS] pgsql: Reset hot standby xmin on master after restart