pgsql: Fix index matching for operators with mixed collatable/noncollat

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix index matching for operators with mixed collatable/noncollat
Дата
Msg-id E1R98Ua-0002OF-BM@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix index matching for operators with mixed collatable/noncollatable inputs.

If an indexable operator for a non-collatable indexed datatype has a
collatable right-hand input type, any OpExpr for it will be marked with a
nonzero inputcollid (since having one collatable input is sufficient to
make that happen).  However, an index on a non-collatable column certainly
doesn't have any collation.  This caused us to fail to match such operators
to their indexes, because indxpath.c required an exact match of index
collation and clause collation.  It seems correct to allow a match when the
index is collation-less regardless of the clause's inputcollid: an operator
with both noncollatable and collatable inputs could perhaps depend on the
collation of the collatable input, but it could hardly expect the index for
the noncollatable input to have that same collation.

Per bug #6232 from Pierre Ducroquet.  His example is specifically about
"hstore ? text" but the problem seems quite generic.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/cb37c291060dd13b1a8ff61fceee09efcfbc34e1

Modified Files
--------------
src/backend/optimizer/path/indxpath.c |   25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)


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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: pgsql: In pg_upgrade, because toast table names can be mismatched with
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix index matching for operators with mixed collatable/noncollat