Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Дата
Msg-id CAM3SWZRKdfKhBLRXzQtMK2WACC2oo_Lq=FWAup4-xvjxkUoEbA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)  (Peter Geoghegan <pg@heroku.com>)
Ответы Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On Mon, Mar 21, 2016 at 5:44 PM, Peter Geoghegan <pg@heroku.com> wrote:
> On Mon, Mar 21, 2016 at 5:26 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> If that is the case, I'd argue that's a glibc problem, not our
>> problem.  Of course, we could provide an option to disable abbreviated
>> keys for the benefit of people who need to work around buggy libc
>> implementations.
>
> That would be an easy patch to write. We'd simply have a test within
> bttextsortsupport() that had systems that disabled abbreviated keys
> for text PG_RETURN_VOID(). Actually, to be more precise we'd put that
> next to the Windows code within varstr_sortsupport() (the function is
> called btsortsupport_worker in 9.5). It would look at a GUC, I
> suppose.

Actually, I suppose it isn't quite that simple, because abbreviated
keys did not introduce the use of strxfrm() by Postgres. That happened
much sooner. I guess we'd have to think about convert_string_datum(),
too.

Maybe we can write a test-case that lets check_strxfrm_bug() detect
this issue, which would be ideal. But, again, I need to see what's
going on with strxfrm() on affected systems before I can do anything.
Don't have one of my own close at hand.

--
Peter Geoghegan

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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)