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

Поиск
Список
Период
Сортировка
От Stephen Frost
Тема Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Дата
Msg-id 20160323011509.GJ3127@tamriel.snowman.net
обсуждение исходный текст
Ответ на Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
* Tom Lane (tgl@sss.pgh.pa.us) wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
> > I was a little worried that it was too much to hope for that all libc
> > vendors on earth would ship a strxfrm() implementation that was actually
> > consistent with strcoll(), and here we are.
>=20
> Indeed.  To try to put some scope on the problem, I made an idiot little
> program that just generates some random UTF8 strings and sees whether
> strcoll and strxfrm sort them alike.  Attached are that program, a even
> more idiot little shell script that runs it over all available UTF8
> locales, and the results on my RHEL6 box.  While de_DE seems to be the
> worst-broken locale, it's far from the only one.
>=20
> Please try this on as many platforms as you can get hold of ...

Results for Ubuntu 15.10:

Using LC_COLLATE =3D "C.UTF-8"
Using LC_CTYPE =3D "en_US.UTF-8"
C.UTF-8 good
Using LC_COLLATE =3D "de_DE.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
de_DE.utf8 good
Using LC_COLLATE =3D "en_AG.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_AG.utf8 good
Using LC_COLLATE =3D "en_AU.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_AU.utf8 good
Using LC_COLLATE =3D "en_BW.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_BW.utf8 good
Using LC_COLLATE =3D "en_CA.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_CA.utf8 good
Using LC_COLLATE =3D "en_DK.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_DK.utf8 good
Using LC_COLLATE =3D "en_GB.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_GB.utf8 good
Using LC_COLLATE =3D "en_HK.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_HK.utf8 good
Using LC_COLLATE =3D "en_IE.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_IE.utf8 good
Using LC_COLLATE =3D "en_IN.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_IN.utf8 good
Using LC_COLLATE =3D "en_NG.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_NG.utf8 good
Using LC_COLLATE =3D "en_NZ.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_NZ.utf8 good
Using LC_COLLATE =3D "en_PH.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_PH.utf8 good
Using LC_COLLATE =3D "en_SG.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_SG.utf8 good
Using LC_COLLATE =3D "en_US.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_US.utf8 good
Using LC_COLLATE =3D "en_ZA.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_ZA.utf8 good
Using LC_COLLATE =3D "en_ZM.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_ZM.utf8 good
Using LC_COLLATE =3D "en_ZW.utf8"
Using LC_CTYPE =3D "en_US.UTF-8"
en_ZW.utf8 good

Will try on others.

Thanks!

Stephen

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

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