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

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Peter Geoghegan <pg(at)heroku(dot)com>, Marc-Olaf Jaschke <marc-olaf(dot)jaschke(at)s24(dot)com>, Postgres-Bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Date: 2016-03-23 01:45:44
Message-ID: 20160323014543.GM3127@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

* Tom Lane (tgl(at)sss(dot)pgh(dot)pa(dot)us) wrote:
> Robert Haas <robertmhaas(at)gmail(dot)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.
>
> 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.
>
> Please try this on as many platforms as you can get hold of ...

Debian 7.9 results with all locales locally generated:

Using LC_COLLATE = "aa_DJ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
aa_DJ.utf8 good
Using LC_COLLATE = "aa_ER.utf8"
Using LC_CTYPE = "en_US.UTF-8"
aa_ER.utf8 good
Using LC_COLLATE = "aa_ER(dot)utf8(at)saaho"
Using LC_CTYPE = "en_US.UTF-8"
aa_ER(dot)utf8(at)saaho good
Using LC_COLLATE = "aa_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
aa_ET.utf8 good
Using LC_COLLATE = "af_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
af_ZA.utf8 good
Using LC_COLLATE = "am_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
am_ET.utf8 good
Using LC_COLLATE = "an_ES.utf8"
Using LC_CTYPE = "en_US.UTF-8"
an_ES.utf8 good
Using LC_COLLATE = "ar_AE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_AE.utf8 good
Using LC_COLLATE = "ar_BH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_BH.utf8 good
Using LC_COLLATE = "ar_DZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_DZ.utf8 good
Using LC_COLLATE = "ar_EG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_EG.utf8 good
Using LC_COLLATE = "ar_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_IN.utf8 good
Using LC_COLLATE = "ar_IQ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_IQ.utf8 good
Using LC_COLLATE = "ar_JO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_JO.utf8 good
Using LC_COLLATE = "ar_KW.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_KW.utf8 good
Using LC_COLLATE = "ar_LB.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_LB.utf8 good
Using LC_COLLATE = "ar_LY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_LY.utf8 good
Using LC_COLLATE = "ar_MA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_MA.utf8 good
Using LC_COLLATE = "ar_OM.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_OM.utf8 good
Using LC_COLLATE = "ar_QA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_QA.utf8 good
Using LC_COLLATE = "ar_SA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_SA.utf8 good
Using LC_COLLATE = "ar_SD.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_SD.utf8 good
Using LC_COLLATE = "ar_SY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_SY.utf8 good
Using LC_COLLATE = "ar_TN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_TN.utf8 good
Using LC_COLLATE = "ar_YE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ar_YE.utf8 good
Using LC_COLLATE = "as_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
as_IN.utf8 good
Using LC_COLLATE = "ast_ES.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ast_ES.utf8 good
Using LC_COLLATE = "az_AZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
az_AZ.utf8 good
Using LC_COLLATE = "be_BY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
be_BY.utf8 good
Using LC_COLLATE = "be_BY(dot)utf8(at)latin"
Using LC_CTYPE = "en_US.UTF-8"
be_BY(dot)utf8(at)latin good
Using LC_COLLATE = "bem_ZM.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bem_ZM.utf8 good
Using LC_COLLATE = "ber_DZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ber_DZ.utf8 good
Using LC_COLLATE = "ber_MA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ber_MA.utf8 good
Using LC_COLLATE = "bg_BG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bg_BG.utf8 good
Using LC_COLLATE = "bn_BD.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bn_BD.utf8 good
Using LC_COLLATE = "bn_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bn_IN.utf8 good
Using LC_COLLATE = "bo_CN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bo_CN.utf8 good
Using LC_COLLATE = "bo_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bo_IN.utf8 good
Using LC_COLLATE = "br_FR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
br_FR.utf8 good
Using LC_COLLATE = "bs_BA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
bs_BA.utf8 good
Using LC_COLLATE = "byn_ER.utf8"
Using LC_CTYPE = "en_US.UTF-8"
byn_ER.utf8 good
Using LC_COLLATE = "ca_AD.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ca_AD.utf8 good
Using LC_COLLATE = "ca_ES.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ca_ES.utf8 good
Using LC_COLLATE = "ca_ES(dot)utf8(at)valencia"
Using LC_CTYPE = "en_US.UTF-8"
ca_ES(dot)utf8(at)valencia good
Using LC_COLLATE = "ca_FR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ca_FR.utf8 good
Using LC_COLLATE = "ca_IT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ca_IT.utf8 good
Using LC_COLLATE = "crh_UA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
crh_UA.utf8 good
Using LC_COLLATE = "csb_PL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
csb_PL.utf8 good
Using LC_COLLATE = "cs_CZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
cs_CZ.utf8 good
Using LC_COLLATE = "C.UTF-8"
Using LC_CTYPE = "en_US.UTF-8"
C.UTF-8 good
Using LC_COLLATE = "cv_RU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
cv_RU.utf8 good
Using LC_COLLATE = "cy_GB.utf8"
Using LC_CTYPE = "en_US.UTF-8"
cy_GB.utf8 good
Using LC_COLLATE = "da_DK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
da_DK.utf8 good
Using LC_COLLATE = "de_AT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
de_AT.utf8 good
Using LC_COLLATE = "de_BE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
de_BE.utf8 good
Using LC_COLLATE = "de_CH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
de_CH.utf8 good
Using LC_COLLATE = "de_DE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
inconsistency between strcoll (71) and strxfrm (70) orders
inconsistency between strcoll (70) and strxfrm (71) orders
inconsistency between strcoll (98) and strxfrm (97) orders
inconsistency between strcoll (97) and strxfrm (98) orders
inconsistency between strcoll (130) and strxfrm (128) orders
inconsistency between strcoll (131) and strxfrm (129) orders
inconsistency between strcoll (128) and strxfrm (130) orders
inconsistency between strcoll (129) and strxfrm (131) orders
inconsistency between strcoll (143) and strxfrm (142) orders
inconsistency between strcoll (142) and strxfrm (143) orders
inconsistency between strcoll (147) and strxfrm (146) orders
inconsistency between strcoll (146) and strxfrm (147) orders
inconsistency between strcoll (152) and strxfrm (150) orders
inconsistency between strcoll (150) and strxfrm (151) orders
inconsistency between strcoll (151) and strxfrm (152) orders
inconsistency between strcoll (155) and strxfrm (154) orders
inconsistency between strcoll (154) and strxfrm (155) orders
inconsistency between strcoll (154) and strxfrm (155) orders
inconsistency between strcoll (157) and strxfrm (156) orders
inconsistency between strcoll (156) and strxfrm (157) orders
inconsistency between strcoll (195) and strxfrm (194) orders
inconsistency between strcoll (194) and strxfrm (195) orders
inconsistency between strcoll (314) and strxfrm (313) orders
inconsistency between strcoll (315) and strxfrm (314) orders
inconsistency between strcoll (316) and strxfrm (315) orders
inconsistency between strcoll (313) and strxfrm (316) orders
inconsistency between strcoll (350) and strxfrm (349) orders
inconsistency between strcoll (351) and strxfrm (350) orders
inconsistency between strcoll (352) and strxfrm (351) orders
inconsistency between strcoll (353) and strxfrm (352) orders
inconsistency between strcoll (354) and strxfrm (353) orders
inconsistency between strcoll (349) and strxfrm (354) orders
inconsistency between strcoll (357) and strxfrm (356) orders
inconsistency between strcoll (356) and strxfrm (357) orders
inconsistency between strcoll (360) and strxfrm (359) orders
inconsistency between strcoll (359) and strxfrm (360) orders
inconsistency between strcoll (433) and strxfrm (432) orders
inconsistency between strcoll (432) and strxfrm (433) orders
inconsistency between strcoll (535) and strxfrm (534) orders
inconsistency between strcoll (534) and strxfrm (535) orders
inconsistency between strcoll (634) and strxfrm (632) orders
inconsistency between strcoll (635) and strxfrm (633) orders
inconsistency between strcoll (632) and strxfrm (634) orders
inconsistency between strcoll (633) and strxfrm (635) orders
inconsistency between strcoll (642) and strxfrm (641) orders
inconsistency between strcoll (641) and strxfrm (642) orders
inconsistency between strcoll (760) and strxfrm (758) orders
inconsistency between strcoll (758) and strxfrm (759) orders
inconsistency between strcoll (761) and strxfrm (760) orders
inconsistency between strcoll (759) and strxfrm (761) orders
inconsistency between strcoll (794) and strxfrm (793) orders
inconsistency between strcoll (795) and strxfrm (794) orders
inconsistency between strcoll (796) and strxfrm (795) orders
inconsistency between strcoll (797) and strxfrm (796) orders
inconsistency between strcoll (793) and strxfrm (797) orders
inconsistency between strcoll (799) and strxfrm (798) orders
inconsistency between strcoll (798) and strxfrm (799) orders
inconsistency between strcoll (803) and strxfrm (802) orders
inconsistency between strcoll (802) and strxfrm (803) orders
inconsistency between strcoll (880) and strxfrm (879) orders
inconsistency between strcoll (879) and strxfrm (880) orders
inconsistency between strcoll (879) and strxfrm (880) orders
inconsistency between strcoll (890) and strxfrm (889) orders
inconsistency between strcoll (889) and strxfrm (890) orders
de_DE.utf8 BAD
Using LC_COLLATE = "de_LI.utf8"
Using LC_CTYPE = "en_US.UTF-8"
de_LI.utf8 good
Using LC_COLLATE = "de_LU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
de_LU.utf8 good
Using LC_COLLATE = "dv_MV.utf8"
Using LC_CTYPE = "en_US.UTF-8"
dv_MV.utf8 good
Using LC_COLLATE = "dz_BT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
dz_BT.utf8 good
Using LC_COLLATE = "el_CY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
el_CY.utf8 good
Using LC_COLLATE = "el_GR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
el_GR.utf8 good
Using LC_COLLATE = "en_AG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_AG.utf8 good
Using LC_COLLATE = "en_AU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_AU.utf8 good
Using LC_COLLATE = "en_BW.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_BW.utf8 good
Using LC_COLLATE = "en_CA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_CA.utf8 good
Using LC_COLLATE = "en_DK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_DK.utf8 good
Using LC_COLLATE = "en_GB.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_GB.utf8 good
Using LC_COLLATE = "en_HK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_HK.utf8 good
Using LC_COLLATE = "en_IE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_IE.utf8 good
Using LC_COLLATE = "en_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_IN.utf8 good
Using LC_COLLATE = "en_NG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_NG.utf8 good
Using LC_COLLATE = "en_NZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_NZ.utf8 good
Using LC_COLLATE = "en_PH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_PH.utf8 good
Using LC_COLLATE = "en_SG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_SG.utf8 good
Using LC_COLLATE = "en_US.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_US.utf8 good
Using LC_COLLATE = "en_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_ZA.utf8 good
Using LC_COLLATE = "en_ZM.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_ZM.utf8 good
Using LC_COLLATE = "en_ZW.utf8"
Using LC_CTYPE = "en_US.UTF-8"
en_ZW.utf8 good
Using LC_COLLATE = "eo.utf8"
Using LC_CTYPE = "en_US.UTF-8"
eo.utf8 good
Using LC_COLLATE = "es_AR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_AR.utf8 good
Using LC_COLLATE = "es_BO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_BO.utf8 good
Using LC_COLLATE = "es_CL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_CL.utf8 good
Using LC_COLLATE = "es_CO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_CO.utf8 good
Using LC_COLLATE = "es_CR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_CR.utf8 good
Using LC_COLLATE = "es_DO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_DO.utf8 good
Using LC_COLLATE = "es_EC.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_EC.utf8 good
Using LC_COLLATE = "es_ES.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_ES.utf8 good
Using LC_COLLATE = "es_GT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_GT.utf8 good
Using LC_COLLATE = "es_HN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_HN.utf8 good
Using LC_COLLATE = "es_MX.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_MX.utf8 good
Using LC_COLLATE = "es_NI.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_NI.utf8 good
Using LC_COLLATE = "es_PA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_PA.utf8 good
Using LC_COLLATE = "es_PE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_PE.utf8 good
Using LC_COLLATE = "es_PR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_PR.utf8 good
Using LC_COLLATE = "es_PY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_PY.utf8 good
Using LC_COLLATE = "es_SV.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_SV.utf8 good
Using LC_COLLATE = "es_US.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_US.utf8 good
Using LC_COLLATE = "es_UY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_UY.utf8 good
Using LC_COLLATE = "es_VE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
es_VE.utf8 good
Using LC_COLLATE = "et_EE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
et_EE.utf8 good
Using LC_COLLATE = "eu_ES.utf8"
Using LC_CTYPE = "en_US.UTF-8"
eu_ES.utf8 good
Using LC_COLLATE = "eu_FR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
eu_FR.utf8 good
Using LC_COLLATE = "fa_IR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fa_IR.utf8 good
Using LC_COLLATE = "ff_SN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ff_SN.utf8 good
Using LC_COLLATE = "fi_FI.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fi_FI.utf8 good
Using LC_COLLATE = "fil_PH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fil_PH.utf8 good
Using LC_COLLATE = "fo_FO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fo_FO.utf8 good
Using LC_COLLATE = "fr_BE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fr_BE.utf8 good
Using LC_COLLATE = "fr_CA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fr_CA.utf8 good
Using LC_COLLATE = "fr_CH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fr_CH.utf8 good
Using LC_COLLATE = "fr_FR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fr_FR.utf8 good
Using LC_COLLATE = "fr_LU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fr_LU.utf8 good
Using LC_COLLATE = "fur_IT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fur_IT.utf8 good
Using LC_COLLATE = "fy_DE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fy_DE.utf8 good
Using LC_COLLATE = "fy_NL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
fy_NL.utf8 good
Using LC_COLLATE = "ga_IE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ga_IE.utf8 good
Using LC_COLLATE = "gd_GB.utf8"
Using LC_CTYPE = "en_US.UTF-8"
gd_GB.utf8 good
Using LC_COLLATE = "gez_ER.utf8"
Using LC_CTYPE = "en_US.UTF-8"
gez_ER.utf8 good
Using LC_COLLATE = "gez_ER(dot)utf8(at)abegede"
Using LC_CTYPE = "en_US.UTF-8"
gez_ER(dot)utf8(at)abegede good
Using LC_COLLATE = "gez_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
gez_ET.utf8 good
Using LC_COLLATE = "gez_ET(dot)utf8(at)abegede"
Using LC_CTYPE = "en_US.UTF-8"
gez_ET(dot)utf8(at)abegede good
Using LC_COLLATE = "gl_ES.utf8"
Using LC_CTYPE = "en_US.UTF-8"
gl_ES.utf8 good
Using LC_COLLATE = "gu_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
gu_IN.utf8 good
Using LC_COLLATE = "gv_GB.utf8"
Using LC_CTYPE = "en_US.UTF-8"
gv_GB.utf8 good
Using LC_COLLATE = "ha_NG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ha_NG.utf8 good
Using LC_COLLATE = "he_IL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
he_IL.utf8 good
Using LC_COLLATE = "hi_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
hi_IN.utf8 good
Using LC_COLLATE = "hne_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
hne_IN.utf8 good
Using LC_COLLATE = "hr_HR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
hr_HR.utf8 good
Using LC_COLLATE = "hsb_DE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
hsb_DE.utf8 good
Using LC_COLLATE = "ht_HT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ht_HT.utf8 good
Using LC_COLLATE = "hu_HU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
hu_HU.utf8 good
Using LC_COLLATE = "hy_AM.utf8"
Using LC_CTYPE = "en_US.UTF-8"
hy_AM.utf8 good
Using LC_COLLATE = "ia.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ia.utf8 good
Using LC_COLLATE = "id_ID.utf8"
Using LC_CTYPE = "en_US.UTF-8"
id_ID.utf8 good
Using LC_COLLATE = "ig_NG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ig_NG.utf8 good
Using LC_COLLATE = "ik_CA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ik_CA.utf8 good
Using LC_COLLATE = "is_IS.utf8"
Using LC_CTYPE = "en_US.UTF-8"
is_IS.utf8 good
Using LC_COLLATE = "it_CH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
it_CH.utf8 good
Using LC_COLLATE = "it_IT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
it_IT.utf8 good
Using LC_COLLATE = "iu_CA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
iu_CA.utf8 good
Using LC_COLLATE = "iw_IL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
iw_IL.utf8 good
Using LC_COLLATE = "ja_JP.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ja_JP.utf8 good
Using LC_COLLATE = "ka_GE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ka_GE.utf8 good
Using LC_COLLATE = "kk_KZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
kk_KZ.utf8 good
Using LC_COLLATE = "kl_GL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
kl_GL.utf8 good
Using LC_COLLATE = "km_KH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
km_KH.utf8 good
Using LC_COLLATE = "kn_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
kn_IN.utf8 good
Using LC_COLLATE = "kok_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
kok_IN.utf8 good
Using LC_COLLATE = "ko_KR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ko_KR.utf8 good
Using LC_COLLATE = "ks_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ks_IN.utf8 good
Using LC_COLLATE = "ks_IN(dot)utf8(at)devanagari"
Using LC_CTYPE = "en_US.UTF-8"
ks_IN(dot)utf8(at)devanagari good
Using LC_COLLATE = "ku_TR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ku_TR.utf8 good
Using LC_COLLATE = "kw_GB.utf8"
Using LC_CTYPE = "en_US.UTF-8"
kw_GB.utf8 good
Using LC_COLLATE = "ky_KG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ky_KG.utf8 good
Using LC_COLLATE = "lg_UG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
lg_UG.utf8 good
Using LC_COLLATE = "li_BE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
li_BE.utf8 good
Using LC_COLLATE = "li_NL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
li_NL.utf8 good
Using LC_COLLATE = "lo_LA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
lo_LA.utf8 good
Using LC_COLLATE = "lt_LT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
lt_LT.utf8 good
Using LC_COLLATE = "lv_LV.utf8"
Using LC_CTYPE = "en_US.UTF-8"
lv_LV.utf8 good
Using LC_COLLATE = "mai_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mai_IN.utf8 good
Using LC_COLLATE = "mg_MG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mg_MG.utf8 good
Using LC_COLLATE = "mi_NZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mi_NZ.utf8 good
Using LC_COLLATE = "mk_MK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mk_MK.utf8 good
Using LC_COLLATE = "ml_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ml_IN.utf8 good
Using LC_COLLATE = "mn_MN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mn_MN.utf8 good
Using LC_COLLATE = "mr_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mr_IN.utf8 good
Using LC_COLLATE = "ms_MY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ms_MY.utf8 good
Using LC_COLLATE = "mt_MT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
mt_MT.utf8 good
Using LC_COLLATE = "my_MM.utf8"
Using LC_CTYPE = "en_US.UTF-8"
my_MM.utf8 good
Using LC_COLLATE = "nan_TW(dot)utf8(at)latin"
Using LC_CTYPE = "en_US.UTF-8"
nan_TW(dot)utf8(at)latin good
Using LC_COLLATE = "nb_NO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nb_NO.utf8 good
Using LC_COLLATE = "nds_DE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nds_DE.utf8 good
Using LC_COLLATE = "nds_NL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nds_NL.utf8 good
Using LC_COLLATE = "ne_NP.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ne_NP.utf8 good
Using LC_COLLATE = "nl_AW.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nl_AW.utf8 good
Using LC_COLLATE = "nl_BE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nl_BE.utf8 good
Using LC_COLLATE = "nl_NL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nl_NL.utf8 good
Using LC_COLLATE = "nn_NO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nn_NO.utf8 good
Using LC_COLLATE = "nr_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nr_ZA.utf8 good
Using LC_COLLATE = "nso_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
nso_ZA.utf8 good
Using LC_COLLATE = "oc_FR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
oc_FR.utf8 good
Using LC_COLLATE = "om_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
om_ET.utf8 good
Using LC_COLLATE = "om_KE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
om_KE.utf8 good
Using LC_COLLATE = "or_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
or_IN.utf8 good
Using LC_COLLATE = "os_RU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
inconsistency between strcoll (936) and strxfrm (935) orders
inconsistency between strcoll (935) and strxfrm (936) orders
os_RU.utf8 BAD
Using LC_COLLATE = "pa_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
pa_IN.utf8 good
Using LC_COLLATE = "pap_AN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
pap_AN.utf8 good
Using LC_COLLATE = "pa_PK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
pa_PK.utf8 good
Using LC_COLLATE = "pl_PL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
pl_PL.utf8 good
Using LC_COLLATE = "ps_AF.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ps_AF.utf8 good
Using LC_COLLATE = "pt_BR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
pt_BR.utf8 good
Using LC_COLLATE = "pt_PT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
pt_PT.utf8 good
Using LC_COLLATE = "ro_RO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ro_RO.utf8 good
Using LC_COLLATE = "ru_RU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ru_RU.utf8 good
Using LC_COLLATE = "ru_UA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ru_UA.utf8 good
Using LC_COLLATE = "rw_RW.utf8"
Using LC_CTYPE = "en_US.UTF-8"
rw_RW.utf8 good
Using LC_COLLATE = "sa_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sa_IN.utf8 good
Using LC_COLLATE = "sc_IT.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sc_IT.utf8 good
Using LC_COLLATE = "sd_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sd_IN.utf8 good
Using LC_COLLATE = "sd_IN(dot)utf8(at)devanagari"
Using LC_CTYPE = "en_US.UTF-8"
sd_IN(dot)utf8(at)devanagari good
Using LC_COLLATE = "se_NO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
se_NO.utf8 good
Using LC_COLLATE = "shs_CA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
strxfrm() result for 18-length string exceeded 100 bytes
shs_CA.utf8 BAD
Using LC_COLLATE = "sid_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sid_ET.utf8 good
Using LC_COLLATE = "si_LK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
si_LK.utf8 good
Using LC_COLLATE = "sk_SK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sk_SK.utf8 good
Using LC_COLLATE = "sl_SI.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sl_SI.utf8 good
Using LC_COLLATE = "so_DJ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
so_DJ.utf8 good
Using LC_COLLATE = "so_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
so_ET.utf8 good
Using LC_COLLATE = "so_KE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
so_KE.utf8 good
Using LC_COLLATE = "so_SO.utf8"
Using LC_CTYPE = "en_US.UTF-8"
so_SO.utf8 good
Using LC_COLLATE = "sq_AL.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sq_AL.utf8 good
Using LC_COLLATE = "sq_MK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sq_MK.utf8 good
Using LC_COLLATE = "sr_ME.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sr_ME.utf8 good
Using LC_COLLATE = "sr_RS.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sr_RS.utf8 good
Using LC_COLLATE = "sr_RS(dot)utf8(at)latin"
Using LC_CTYPE = "en_US.UTF-8"
sr_RS(dot)utf8(at)latin good
Using LC_COLLATE = "ss_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ss_ZA.utf8 good
Using LC_COLLATE = "st_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
st_ZA.utf8 good
Using LC_COLLATE = "sv_FI.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sv_FI.utf8 good
Using LC_COLLATE = "sv_SE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sv_SE.utf8 good
Using LC_COLLATE = "sw_KE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sw_KE.utf8 good
Using LC_COLLATE = "sw_TZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
sw_TZ.utf8 good
Using LC_COLLATE = "ta_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ta_IN.utf8 good
Using LC_COLLATE = "te_IN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
te_IN.utf8 good
Using LC_COLLATE = "tg_TJ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tg_TJ.utf8 good
Using LC_COLLATE = "th_TH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
th_TH.utf8 good
Using LC_COLLATE = "ti_ER.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ti_ER.utf8 good
Using LC_COLLATE = "ti_ET.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ti_ET.utf8 good
Using LC_COLLATE = "tig_ER.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tig_ER.utf8 good
Using LC_COLLATE = "tk_TM.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tk_TM.utf8 good
Using LC_COLLATE = "tl_PH.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tl_PH.utf8 good
Using LC_COLLATE = "tn_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tn_ZA.utf8 good
Using LC_COLLATE = "tr_CY.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tr_CY.utf8 good
Using LC_COLLATE = "tr_TR.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tr_TR.utf8 good
Using LC_COLLATE = "ts_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ts_ZA.utf8 good
Using LC_COLLATE = "tt_RU.utf8"
Using LC_CTYPE = "en_US.UTF-8"
tt_RU.utf8 good
Using LC_COLLATE = "tt_RU(dot)utf8(at)iqtelif"
Using LC_CTYPE = "en_US.UTF-8"
tt_RU(dot)utf8(at)iqtelif good
Using LC_COLLATE = "ug_CN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ug_CN.utf8 good
Using LC_COLLATE = "uk_UA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
uk_UA.utf8 good
Using LC_COLLATE = "ur_PK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ur_PK.utf8 good
Using LC_COLLATE = "uz_UZ.utf8"
Using LC_CTYPE = "en_US.UTF-8"
uz_UZ.utf8 good
Using LC_COLLATE = "uz_UZ(dot)utf8(at)cyrillic"
Using LC_CTYPE = "en_US.UTF-8"
uz_UZ(dot)utf8(at)cyrillic good
Using LC_COLLATE = "ve_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
ve_ZA.utf8 good
Using LC_COLLATE = "vi_VN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
vi_VN.utf8 good
Using LC_COLLATE = "wa_BE.utf8"
Using LC_CTYPE = "en_US.UTF-8"
wa_BE.utf8 good
Using LC_COLLATE = "wo_SN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
wo_SN.utf8 good
Using LC_COLLATE = "xh_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
xh_ZA.utf8 good
Using LC_COLLATE = "yi_US.utf8"
Using LC_CTYPE = "en_US.UTF-8"
yi_US.utf8 good
Using LC_COLLATE = "yo_NG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
yo_NG.utf8 good
Using LC_COLLATE = "zh_CN.utf8"
Using LC_CTYPE = "en_US.UTF-8"
zh_CN.utf8 good
Using LC_COLLATE = "zh_HK.utf8"
Using LC_CTYPE = "en_US.UTF-8"
zh_HK.utf8 good
Using LC_COLLATE = "zh_SG.utf8"
Using LC_CTYPE = "en_US.UTF-8"
zh_SG.utf8 good
Using LC_COLLATE = "zh_TW.utf8"
Using LC_CTYPE = "en_US.UTF-8"
zh_TW.utf8 good
Using LC_COLLATE = "zu_ZA.utf8"
Using LC_CTYPE = "en_US.UTF-8"
zu_ZA.utf8 good

Thanks!

Stephen

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Stephen Frost 2016-03-23 01:49:56 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Previous Message Thomas Munro 2016-03-23 01:42:53 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2016-03-23 01:49:56 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Previous Message Thomas Munro 2016-03-23 01:42:53 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)