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:49:56
Message-ID: 20160323014955.GN3127@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 ...

From IRC (not mine), "debian testing, glibc 2.22-3":

Using LC_COLLATE = "aa_DJ.utf8"
Using LC_CTYPE = "aa_DJ.utf8"
aa_DJ.utf8 good
Using LC_COLLATE = "aa_ER"
Using LC_CTYPE = "aa_ER"
aa_ER good
Using LC_COLLATE = "aa_ER(at)saaho"
Using LC_CTYPE = "aa_ER(at)saaho"
aa_ER(at)saaho good
Using LC_COLLATE = "aa_ET"
Using LC_CTYPE = "aa_ET"
aa_ET good
Using LC_COLLATE = "af_ZA.utf8"
Using LC_CTYPE = "af_ZA.utf8"
af_ZA.utf8 good
Using LC_COLLATE = "ak_GH"
Using LC_CTYPE = "ak_GH"
ak_GH good
Using LC_COLLATE = "am_ET"
Using LC_CTYPE = "am_ET"
am_ET good
Using LC_COLLATE = "an_ES.utf8"
Using LC_CTYPE = "an_ES.utf8"
an_ES.utf8 good
Using LC_COLLATE = "anp_IN"
Using LC_CTYPE = "anp_IN"
anp_IN good
Using LC_COLLATE = "ar_AE.utf8"
Using LC_CTYPE = "ar_AE.utf8"
ar_AE.utf8 good
Using LC_COLLATE = "ar_BH.utf8"
Using LC_CTYPE = "ar_BH.utf8"
ar_BH.utf8 good
Using LC_COLLATE = "ar_DZ.utf8"
Using LC_CTYPE = "ar_DZ.utf8"
ar_DZ.utf8 good
Using LC_COLLATE = "ar_EG.utf8"
Using LC_CTYPE = "ar_EG.utf8"
ar_EG.utf8 good
Using LC_COLLATE = "ar_IN"
Using LC_CTYPE = "ar_IN"
ar_IN good
Using LC_COLLATE = "ar_IQ.utf8"
Using LC_CTYPE = "ar_IQ.utf8"
ar_IQ.utf8 good
Using LC_COLLATE = "ar_JO.utf8"
Using LC_CTYPE = "ar_JO.utf8"
ar_JO.utf8 good
Using LC_COLLATE = "ar_KW.utf8"
Using LC_CTYPE = "ar_KW.utf8"
ar_KW.utf8 good
Using LC_COLLATE = "ar_LB.utf8"
Using LC_CTYPE = "ar_LB.utf8"
ar_LB.utf8 good
Using LC_COLLATE = "ar_LY.utf8"
Using LC_CTYPE = "ar_LY.utf8"
ar_LY.utf8 good
Using LC_COLLATE = "ar_MA.utf8"
Using LC_CTYPE = "ar_MA.utf8"
ar_MA.utf8 good
Using LC_COLLATE = "ar_OM.utf8"
Using LC_CTYPE = "ar_OM.utf8"
ar_OM.utf8 good
Using LC_COLLATE = "ar_QA.utf8"
Using LC_CTYPE = "ar_QA.utf8"
ar_QA.utf8 good
Using LC_COLLATE = "ar_SA.utf8"
Using LC_CTYPE = "ar_SA.utf8"
ar_SA.utf8 good
Using LC_COLLATE = "ar_SD.utf8"
Using LC_CTYPE = "ar_SD.utf8"
ar_SD.utf8 good
Using LC_COLLATE = "ar_SS"
Using LC_CTYPE = "ar_SS"
ar_SS good
Using LC_COLLATE = "ar_SY.utf8"
Using LC_CTYPE = "ar_SY.utf8"
ar_SY.utf8 good
Using LC_COLLATE = "ar_TN.utf8"
Using LC_CTYPE = "ar_TN.utf8"
ar_TN.utf8 good
Using LC_COLLATE = "ar_YE.utf8"
Using LC_CTYPE = "ar_YE.utf8"
ar_YE.utf8 good
Using LC_COLLATE = "as_IN"
Using LC_CTYPE = "as_IN"
as_IN good
Using LC_COLLATE = "ast_ES.utf8"
Using LC_CTYPE = "ast_ES.utf8"
ast_ES.utf8 good
Using LC_COLLATE = "ayc_PE"
Using LC_CTYPE = "ayc_PE"
ayc_PE good
Using LC_COLLATE = "az_AZ"
Using LC_CTYPE = "az_AZ"
az_AZ good
Using LC_COLLATE = "be_BY(at)latin"
Using LC_CTYPE = "be_BY(at)latin"
be_BY(at)latin good
Using LC_COLLATE = "be_BY.utf8"
Using LC_CTYPE = "be_BY.utf8"
be_BY.utf8 good
Using LC_COLLATE = "bem_ZM"
Using LC_CTYPE = "bem_ZM"
bem_ZM good
Using LC_COLLATE = "ber_DZ"
Using LC_CTYPE = "ber_DZ"
ber_DZ good
Using LC_COLLATE = "ber_MA"
Using LC_CTYPE = "ber_MA"
ber_MA good
Using LC_COLLATE = "bg_BG.utf8"
Using LC_CTYPE = "bg_BG.utf8"
bg_BG.utf8 good
Using LC_COLLATE = "bhb_IN.utf8"
Using LC_CTYPE = "bhb_IN.utf8"
bhb_IN.utf8 good
Using LC_COLLATE = "bho_IN"
Using LC_CTYPE = "bho_IN"
bho_IN good
Using LC_COLLATE = "bn_BD"
Using LC_CTYPE = "bn_BD"
bn_BD good
Using LC_COLLATE = "bn_IN"
Using LC_CTYPE = "bn_IN"
bn_IN good
Using LC_COLLATE = "bo_CN"
Using LC_CTYPE = "bo_CN"
bo_CN good
Using LC_COLLATE = "bo_IN"
Using LC_CTYPE = "bo_IN"
bo_IN good
Using LC_COLLATE = "br_FR.utf8"
Using LC_CTYPE = "br_FR.utf8"
br_FR.utf8 good
Using LC_COLLATE = "brx_IN"
Using LC_CTYPE = "brx_IN"
brx_IN good
Using LC_COLLATE = "bs_BA.utf8"
Using LC_CTYPE = "bs_BA.utf8"
bs_BA.utf8 good
Using LC_COLLATE = "byn_ER"
Using LC_CTYPE = "byn_ER"
byn_ER good
Using LC_COLLATE = "ca_AD.utf8"
Using LC_CTYPE = "ca_AD.utf8"
ca_AD.utf8 good
Using LC_COLLATE = "ca_ES.utf8"
Using LC_CTYPE = "ca_ES.utf8"
ca_ES.utf8 good
Using LC_COLLATE = "ca_ES(dot)utf8(at)valencia"
Using LC_CTYPE = "ca_ES(dot)utf8(at)valencia"
ca_ES(dot)utf8(at)valencia good
Using LC_COLLATE = "ca_FR.utf8"
Using LC_CTYPE = "ca_FR.utf8"
ca_FR.utf8 good
Using LC_COLLATE = "ca_IT.utf8"
Using LC_CTYPE = "ca_IT.utf8"
ca_IT.utf8 good
Using LC_COLLATE = "ce_RU"
Using LC_CTYPE = "ce_RU"
ce_RU good
Using LC_COLLATE = "cmn_TW"
Using LC_CTYPE = "cmn_TW"
cmn_TW good
Using LC_COLLATE = "crh_UA"
Using LC_CTYPE = "crh_UA"
crh_UA good
Using LC_COLLATE = "csb_PL"
Using LC_CTYPE = "csb_PL"
csb_PL good
Using LC_COLLATE = "cs_CZ.utf8"
Using LC_CTYPE = "cs_CZ.utf8"
cs_CZ.utf8 good
Using LC_COLLATE = "C.UTF-8"
Using LC_CTYPE = "C.UTF-8"
C.UTF-8 good
Using LC_COLLATE = "cv_RU"
Using LC_CTYPE = "cv_RU"
cv_RU good
Using LC_COLLATE = "cy_GB.utf8"
Using LC_CTYPE = "cy_GB.utf8"
cy_GB.utf8 good
Using LC_COLLATE = "da_DK.utf8"
Using LC_CTYPE = "da_DK.utf8"
da_DK.utf8 good
Using LC_COLLATE = "de_AT.utf8"
Using LC_CTYPE = "de_AT.utf8"
de_AT.utf8 good
Using LC_COLLATE = "de_BE.utf8"
Using LC_CTYPE = "de_BE.utf8"
de_BE.utf8 good
Using LC_COLLATE = "de_CH.utf8"
Using LC_CTYPE = "de_CH.utf8"
de_CH.utf8 good
Using LC_COLLATE = "de_DE.utf8"
Using LC_CTYPE = "de_DE.utf8"
de_DE.utf8 good
Using LC_COLLATE = "de_LI.utf8"
Using LC_CTYPE = "de_LI.utf8"
de_LI.utf8 good
Using LC_COLLATE = "de_LU.utf8"
Using LC_CTYPE = "de_LU.utf8"
de_LU.utf8 good
Using LC_COLLATE = "doi_IN"
Using LC_CTYPE = "doi_IN"
doi_IN good
Using LC_COLLATE = "dv_MV"
Using LC_CTYPE = "dv_MV"
dv_MV good
Using LC_COLLATE = "dz_BT"
Using LC_CTYPE = "dz_BT"
dz_BT good
Using LC_COLLATE = "el_CY.utf8"
Using LC_CTYPE = "el_CY.utf8"
el_CY.utf8 good
Using LC_COLLATE = "el_GR.utf8"
Using LC_CTYPE = "el_GR.utf8"
el_GR.utf8 good
Using LC_COLLATE = "en_AG"
Using LC_CTYPE = "en_AG"
en_AG good
Using LC_COLLATE = "en_AU.utf8"
Using LC_CTYPE = "en_AU.utf8"
en_AU.utf8 good
Using LC_COLLATE = "en_BW.utf8"
Using LC_CTYPE = "en_BW.utf8"
en_BW.utf8 good
Using LC_COLLATE = "en_CA.utf8"
Using LC_CTYPE = "en_CA.utf8"
en_CA.utf8 good
Using LC_COLLATE = "en_DK.utf8"
Using LC_CTYPE = "en_DK.utf8"
en_DK.utf8 good
Using LC_COLLATE = "en_GB.utf8"
Using LC_CTYPE = "en_GB.utf8"
en_GB.utf8 good
Using LC_COLLATE = "en_HK.utf8"
Using LC_CTYPE = "en_HK.utf8"
en_HK.utf8 good
Using LC_COLLATE = "en_IE.utf8"
Using LC_CTYPE = "en_IE.utf8"
en_IE.utf8 good
Using LC_COLLATE = "en_IN"
Using LC_CTYPE = "en_IN"
en_IN good
Using LC_COLLATE = "en_NG"
Using LC_CTYPE = "en_NG"
en_NG good
Using LC_COLLATE = "en_NZ.utf8"
Using LC_CTYPE = "en_NZ.utf8"
en_NZ.utf8 good
Using LC_COLLATE = "en_PH.utf8"
Using LC_CTYPE = "en_PH.utf8"
en_PH.utf8 good
Using LC_COLLATE = "en_SG.utf8"
Using LC_CTYPE = "en_SG.utf8"
en_SG.utf8 good
Using LC_COLLATE = "en_US.utf8"
Using LC_CTYPE = "en_US.utf8"
en_US.utf8 good
Using LC_COLLATE = "en_ZA.utf8"
Using LC_CTYPE = "en_ZA.utf8"
en_ZA.utf8 good
Using LC_COLLATE = "en_ZM"
Using LC_CTYPE = "en_ZM"
en_ZM good
Using LC_COLLATE = "en_ZW.utf8"
Using LC_CTYPE = "en_ZW.utf8"
en_ZW.utf8 good
Using LC_COLLATE = "eo.utf8"
Using LC_CTYPE = "eo.utf8"
eo.utf8 good
Using LC_COLLATE = "es_AR.utf8"
Using LC_CTYPE = "es_AR.utf8"
es_AR.utf8 good
Using LC_COLLATE = "es_BO.utf8"
Using LC_CTYPE = "es_BO.utf8"
es_BO.utf8 good
Using LC_COLLATE = "es_CL.utf8"
Using LC_CTYPE = "es_CL.utf8"
es_CL.utf8 good
Using LC_COLLATE = "es_CO.utf8"
Using LC_CTYPE = "es_CO.utf8"
es_CO.utf8 good
Using LC_COLLATE = "es_CR.utf8"
Using LC_CTYPE = "es_CR.utf8"
es_CR.utf8 good
Using LC_COLLATE = "es_CU"
Using LC_CTYPE = "es_CU"
es_CU good
Using LC_COLLATE = "es_DO.utf8"
Using LC_CTYPE = "es_DO.utf8"
es_DO.utf8 good
Using LC_COLLATE = "es_EC.utf8"
Using LC_CTYPE = "es_EC.utf8"
es_EC.utf8 good
Using LC_COLLATE = "es_ES.utf8"
Using LC_CTYPE = "es_ES.utf8"
es_ES.utf8 good
Using LC_COLLATE = "es_GT.utf8"
Using LC_CTYPE = "es_GT.utf8"
es_GT.utf8 good
Using LC_COLLATE = "es_HN.utf8"
Using LC_CTYPE = "es_HN.utf8"
es_HN.utf8 good
Using LC_COLLATE = "es_MX.utf8"
Using LC_CTYPE = "es_MX.utf8"
es_MX.utf8 good
Using LC_COLLATE = "es_NI.utf8"
Using LC_CTYPE = "es_NI.utf8"
es_NI.utf8 good
Using LC_COLLATE = "es_PA.utf8"
Using LC_CTYPE = "es_PA.utf8"
es_PA.utf8 good
Using LC_COLLATE = "es_PE.utf8"
Using LC_CTYPE = "es_PE.utf8"
es_PE.utf8 good
Using LC_COLLATE = "es_PR.utf8"
Using LC_CTYPE = "es_PR.utf8"
es_PR.utf8 good
Using LC_COLLATE = "es_PY.utf8"
Using LC_CTYPE = "es_PY.utf8"
es_PY.utf8 good
Using LC_COLLATE = "es_SV.utf8"
Using LC_CTYPE = "es_SV.utf8"
es_SV.utf8 good
Using LC_COLLATE = "es_US.utf8"
Using LC_CTYPE = "es_US.utf8"
es_US.utf8 good
Using LC_COLLATE = "es_UY.utf8"
Using LC_CTYPE = "es_UY.utf8"
es_UY.utf8 good
Using LC_COLLATE = "es_VE.utf8"
Using LC_CTYPE = "es_VE.utf8"
es_VE.utf8 good
Using LC_COLLATE = "et_EE.utf8"
Using LC_CTYPE = "et_EE.utf8"
et_EE.utf8 good
Using LC_COLLATE = "eu_ES.utf8"
Using LC_CTYPE = "eu_ES.utf8"
eu_ES.utf8 good
Using LC_COLLATE = "eu_FR.utf8"
Using LC_CTYPE = "eu_FR.utf8"
eu_FR.utf8 good
Using LC_COLLATE = "fa_IR"
Using LC_CTYPE = "fa_IR"
fa_IR good
Using LC_COLLATE = "ff_SN"
Using LC_CTYPE = "ff_SN"
ff_SN good
Using LC_COLLATE = "fi_FI.utf8"
Using LC_CTYPE = "fi_FI.utf8"
fi_FI.utf8 good
Using LC_COLLATE = "fil_PH"
Using LC_CTYPE = "fil_PH"
fil_PH good
Using LC_COLLATE = "fo_FO.utf8"
Using LC_CTYPE = "fo_FO.utf8"
fo_FO.utf8 good
Using LC_COLLATE = "fr_BE.utf8"
Using LC_CTYPE = "fr_BE.utf8"
fr_BE.utf8 good
Using LC_COLLATE = "fr_CA.utf8"
Using LC_CTYPE = "fr_CA.utf8"
fr_CA.utf8 good
Using LC_COLLATE = "fr_CH.utf8"
Using LC_CTYPE = "fr_CH.utf8"
fr_CH.utf8 good
Using LC_COLLATE = "fr_FR.utf8"
Using LC_CTYPE = "fr_FR.utf8"
fr_FR.utf8 good
Using LC_COLLATE = "fr_LU.utf8"
Using LC_CTYPE = "fr_LU.utf8"
fr_LU.utf8 good
Using LC_COLLATE = "fur_IT"
Using LC_CTYPE = "fur_IT"
fur_IT good
Using LC_COLLATE = "fy_DE"
Using LC_CTYPE = "fy_DE"
fy_DE good
Using LC_COLLATE = "fy_NL"
Using LC_CTYPE = "fy_NL"
fy_NL good
Using LC_COLLATE = "ga_IE.utf8"
Using LC_CTYPE = "ga_IE.utf8"
ga_IE.utf8 good
Using LC_COLLATE = "gd_GB.utf8"
Using LC_CTYPE = "gd_GB.utf8"
gd_GB.utf8 good
Using LC_COLLATE = "gez_ER"
Using LC_CTYPE = "gez_ER"
gez_ER good
Using LC_COLLATE = "gez_ER(at)abegede"
Using LC_CTYPE = "gez_ER(at)abegede"
gez_ER(at)abegede good
Using LC_COLLATE = "gez_ET"
Using LC_CTYPE = "gez_ET"
gez_ET good
Using LC_COLLATE = "gez_ET(at)abegede"
Using LC_CTYPE = "gez_ET(at)abegede"
gez_ET(at)abegede good
Using LC_COLLATE = "gl_ES.utf8"
Using LC_CTYPE = "gl_ES.utf8"
gl_ES.utf8 good
Using LC_COLLATE = "gu_IN"
Using LC_CTYPE = "gu_IN"
gu_IN good
Using LC_COLLATE = "gv_GB.utf8"
Using LC_CTYPE = "gv_GB.utf8"
gv_GB.utf8 good
Using LC_COLLATE = "hak_TW"
Using LC_CTYPE = "hak_TW"
hak_TW good
Using LC_COLLATE = "ha_NG"
Using LC_CTYPE = "ha_NG"
ha_NG good
Using LC_COLLATE = "he_IL.utf8"
Using LC_CTYPE = "he_IL.utf8"
he_IL.utf8 good
Using LC_COLLATE = "hi_IN"
Using LC_CTYPE = "hi_IN"
hi_IN good
Using LC_COLLATE = "hne_IN"
Using LC_CTYPE = "hne_IN"
hne_IN good
Using LC_COLLATE = "hr_HR.utf8"
Using LC_CTYPE = "hr_HR.utf8"
hr_HR.utf8 good
Using LC_COLLATE = "hsb_DE.utf8"
Using LC_CTYPE = "hsb_DE.utf8"
hsb_DE.utf8 good
Using LC_COLLATE = "ht_HT"
Using LC_CTYPE = "ht_HT"
ht_HT good
Using LC_COLLATE = "hu_HU.utf8"
Using LC_CTYPE = "hu_HU.utf8"
hu_HU.utf8 good
Using LC_COLLATE = "hy_AM"
Using LC_CTYPE = "hy_AM"
hy_AM good
Using LC_COLLATE = "ia_FR"
Using LC_CTYPE = "ia_FR"
ia_FR good
Using LC_COLLATE = "id_ID.utf8"
Using LC_CTYPE = "id_ID.utf8"
id_ID.utf8 good
Using LC_COLLATE = "ig_NG"
Using LC_CTYPE = "ig_NG"
ig_NG good
Using LC_COLLATE = "ik_CA"
Using LC_CTYPE = "ik_CA"
ik_CA good
Using LC_COLLATE = "is_IS.utf8"
Using LC_CTYPE = "is_IS.utf8"
is_IS.utf8 good
Using LC_COLLATE = "it_CH.utf8"
Using LC_CTYPE = "it_CH.utf8"
it_CH.utf8 good
Using LC_COLLATE = "it_IT.utf8"
Using LC_CTYPE = "it_IT.utf8"
it_IT.utf8 good
Using LC_COLLATE = "iu_CA"
Using LC_CTYPE = "iu_CA"
iu_CA good
Using LC_COLLATE = "iw_IL.utf8"
Using LC_CTYPE = "iw_IL.utf8"
iw_IL.utf8 good
Using LC_COLLATE = "ja_JP.utf8"
Using LC_CTYPE = "ja_JP.utf8"
ja_JP.utf8 good
Using LC_COLLATE = "ka_GE.utf8"
Using LC_CTYPE = "ka_GE.utf8"
ka_GE.utf8 good
Using LC_COLLATE = "kk_KZ.utf8"
Using LC_CTYPE = "kk_KZ.utf8"
kk_KZ.utf8 good
Using LC_COLLATE = "kl_GL.utf8"
Using LC_CTYPE = "kl_GL.utf8"
kl_GL.utf8 good
Using LC_COLLATE = "km_KH"
Using LC_CTYPE = "km_KH"
km_KH good
Using LC_COLLATE = "kn_IN"
Using LC_CTYPE = "kn_IN"
kn_IN good
Using LC_COLLATE = "kok_IN"
Using LC_CTYPE = "kok_IN"
kok_IN good
Using LC_COLLATE = "ko_KR.utf8"
Using LC_CTYPE = "ko_KR.utf8"
ko_KR.utf8 good
Using LC_COLLATE = "ks_IN"
Using LC_CTYPE = "ks_IN"
ks_IN good
Using LC_COLLATE = "ks_IN(at)devanagari"
Using LC_CTYPE = "ks_IN(at)devanagari"
ks_IN(at)devanagari good
Using LC_COLLATE = "ku_TR.utf8"
Using LC_CTYPE = "ku_TR.utf8"
ku_TR.utf8 good
Using LC_COLLATE = "kw_GB.utf8"
Using LC_CTYPE = "kw_GB.utf8"
kw_GB.utf8 good
Using LC_COLLATE = "ky_KG"
Using LC_CTYPE = "ky_KG"
ky_KG good
Using LC_COLLATE = "lb_LU"
Using LC_CTYPE = "lb_LU"
lb_LU good
Using LC_COLLATE = "lg_UG.utf8"
Using LC_CTYPE = "lg_UG.utf8"
lg_UG.utf8 good
Using LC_COLLATE = "li_BE"
Using LC_CTYPE = "li_BE"
li_BE good
Using LC_COLLATE = "lij_IT"
Using LC_CTYPE = "lij_IT"
lij_IT good
Using LC_COLLATE = "li_NL"
Using LC_CTYPE = "li_NL"
li_NL good
Using LC_COLLATE = "lo_LA"
Using LC_CTYPE = "lo_LA"
lo_LA good
Using LC_COLLATE = "lt_LT.utf8"
Using LC_CTYPE = "lt_LT.utf8"
lt_LT.utf8 good
Using LC_COLLATE = "lv_LV.utf8"
Using LC_CTYPE = "lv_LV.utf8"
lv_LV.utf8 good
Using LC_COLLATE = "lzh_TW"
Using LC_CTYPE = "lzh_TW"
lzh_TW good
Using LC_COLLATE = "mag_IN"
Using LC_CTYPE = "mag_IN"
mag_IN good
Using LC_COLLATE = "mai_IN"
Using LC_CTYPE = "mai_IN"
mai_IN good
Using LC_COLLATE = "mg_MG.utf8"
Using LC_CTYPE = "mg_MG.utf8"
mg_MG.utf8 good
Using LC_COLLATE = "mhr_RU"
Using LC_CTYPE = "mhr_RU"
mhr_RU good
Using LC_COLLATE = "mi_NZ.utf8"
Using LC_CTYPE = "mi_NZ.utf8"
mi_NZ.utf8 good
Using LC_COLLATE = "mk_MK.utf8"
Using LC_CTYPE = "mk_MK.utf8"
mk_MK.utf8 good
Using LC_COLLATE = "ml_IN"
Using LC_CTYPE = "ml_IN"
ml_IN good
Using LC_COLLATE = "mni_IN"
Using LC_CTYPE = "mni_IN"
mni_IN good
Using LC_COLLATE = "mn_MN"
Using LC_CTYPE = "mn_MN"
mn_MN good
Using LC_COLLATE = "mr_IN"
Using LC_CTYPE = "mr_IN"
mr_IN good
Using LC_COLLATE = "ms_MY.utf8"
Using LC_CTYPE = "ms_MY.utf8"
ms_MY.utf8 good
Using LC_COLLATE = "mt_MT.utf8"
Using LC_CTYPE = "mt_MT.utf8"
mt_MT.utf8 good
Using LC_COLLATE = "my_MM"
Using LC_CTYPE = "my_MM"
my_MM good
Using LC_COLLATE = "nan_TW"
Using LC_CTYPE = "nan_TW"
nan_TW good
Using LC_COLLATE = "nan_TW(at)latin"
Using LC_CTYPE = "nan_TW(at)latin"
nan_TW(at)latin good
Using LC_COLLATE = "nb_NO.utf8"
Using LC_CTYPE = "nb_NO.utf8"
nb_NO.utf8 good
Using LC_COLLATE = "nds_DE"
Using LC_CTYPE = "nds_DE"
nds_DE good
Using LC_COLLATE = "nds_NL"
Using LC_CTYPE = "nds_NL"
nds_NL good
Using LC_COLLATE = "ne_NP"
Using LC_CTYPE = "ne_NP"
ne_NP good
Using LC_COLLATE = "nhn_MX"
Using LC_CTYPE = "nhn_MX"
nhn_MX good
Using LC_COLLATE = "niu_NU"
Using LC_CTYPE = "niu_NU"
niu_NU good
Using LC_COLLATE = "niu_NZ"
Using LC_CTYPE = "niu_NZ"
niu_NZ good
Using LC_COLLATE = "nl_AW"
Using LC_CTYPE = "nl_AW"
nl_AW good
Using LC_COLLATE = "nl_BE.utf8"
Using LC_CTYPE = "nl_BE.utf8"
nl_BE.utf8 good
Using LC_COLLATE = "nl_NL.utf8"
Using LC_CTYPE = "nl_NL.utf8"
nl_NL.utf8 good
Using LC_COLLATE = "nn_NO.utf8"
Using LC_CTYPE = "nn_NO.utf8"
nn_NO.utf8 good
Using LC_COLLATE = "nr_ZA"
Using LC_CTYPE = "nr_ZA"
nr_ZA good
Using LC_COLLATE = "nso_ZA"
Using LC_CTYPE = "nso_ZA"
nso_ZA good
Using LC_COLLATE = "oc_FR.utf8"
Using LC_CTYPE = "oc_FR.utf8"
oc_FR.utf8 good
Using LC_COLLATE = "om_ET"
Using LC_CTYPE = "om_ET"
om_ET good
Using LC_COLLATE = "om_KE.utf8"
Using LC_CTYPE = "om_KE.utf8"
om_KE.utf8 good
Using LC_COLLATE = "or_IN"
Using LC_CTYPE = "or_IN"
or_IN good
Using LC_COLLATE = "os_RU"
Using LC_CTYPE = "os_RU"
os_RU good
Using LC_COLLATE = "pa_IN"
Using LC_CTYPE = "pa_IN"
pa_IN good
Using LC_COLLATE = "pap_AN"
Using LC_CTYPE = "pap_AN"
pap_AN good
Using LC_COLLATE = "pap_AW"
Using LC_CTYPE = "pap_AW"
pap_AW good
Using LC_COLLATE = "pap_CW"
Using LC_CTYPE = "pap_CW"
pap_CW good
Using LC_COLLATE = "pa_PK"
Using LC_CTYPE = "pa_PK"
pa_PK good
Using LC_COLLATE = "pl_PL.utf8"
Using LC_CTYPE = "pl_PL.utf8"
pl_PL.utf8 good
Using LC_COLLATE = "ps_AF"
Using LC_CTYPE = "ps_AF"
ps_AF good
Using LC_COLLATE = "pt_BR.utf8"
Using LC_CTYPE = "pt_BR.utf8"
pt_BR.utf8 good
Using LC_COLLATE = "pt_PT.utf8"
Using LC_CTYPE = "pt_PT.utf8"
pt_PT.utf8 good
Using LC_COLLATE = "quz_PE"
Using LC_CTYPE = "quz_PE"
quz_PE good
Using LC_COLLATE = "raj_IN"
Using LC_CTYPE = "raj_IN"
raj_IN good
Using LC_COLLATE = "ro_RO.utf8"
Using LC_CTYPE = "ro_RO.utf8"
ro_RO.utf8 good
Using LC_COLLATE = "ru_RU.utf8"
Using LC_CTYPE = "ru_RU.utf8"
ru_RU.utf8 good
Using LC_COLLATE = "ru_UA.utf8"
Using LC_CTYPE = "ru_UA.utf8"
ru_UA.utf8 good
Using LC_COLLATE = "rw_RW"
Using LC_CTYPE = "rw_RW"
rw_RW good
Using LC_COLLATE = "sa_IN"
Using LC_CTYPE = "sa_IN"
sa_IN good
Using LC_COLLATE = "sat_IN"
Using LC_CTYPE = "sat_IN"
sat_IN good
Using LC_COLLATE = "sc_IT"
Using LC_CTYPE = "sc_IT"
sc_IT good
Using LC_COLLATE = "sd_IN"
Using LC_CTYPE = "sd_IN"
sd_IN good
Using LC_COLLATE = "sd_IN(at)devanagari"
Using LC_CTYPE = "sd_IN(at)devanagari"
sd_IN(at)devanagari good
Using LC_COLLATE = "se_NO"
Using LC_CTYPE = "se_NO"
se_NO good
Using LC_COLLATE = "shs_CA"
Using LC_CTYPE = "shs_CA"
shs_CA good
Using LC_COLLATE = "sid_ET"
Using LC_CTYPE = "sid_ET"
sid_ET good
Using LC_COLLATE = "si_LK"
Using LC_CTYPE = "si_LK"
si_LK good
Using LC_COLLATE = "sk_SK.utf8"
Using LC_CTYPE = "sk_SK.utf8"
sk_SK.utf8 good
Using LC_COLLATE = "sl_SI.utf8"
Using LC_CTYPE = "sl_SI.utf8"
sl_SI.utf8 good
Using LC_COLLATE = "so_DJ.utf8"
Using LC_CTYPE = "so_DJ.utf8"
so_DJ.utf8 good
Using LC_COLLATE = "so_ET"
Using LC_CTYPE = "so_ET"
so_ET good
Using LC_COLLATE = "so_KE.utf8"
Using LC_CTYPE = "so_KE.utf8"
so_KE.utf8 good
Using LC_COLLATE = "so_SO.utf8"
Using LC_CTYPE = "so_SO.utf8"
so_SO.utf8 good
Using LC_COLLATE = "sq_AL.utf8"
Using LC_CTYPE = "sq_AL.utf8"
sq_AL.utf8 good
Using LC_COLLATE = "sq_MK"
Using LC_CTYPE = "sq_MK"
sq_MK good
Using LC_COLLATE = "sr_ME"
Using LC_CTYPE = "sr_ME"
sr_ME good
Using LC_COLLATE = "sr_RS"
Using LC_CTYPE = "sr_RS"
sr_RS good
Using LC_COLLATE = "sr_RS(at)latin"
Using LC_CTYPE = "sr_RS(at)latin"
sr_RS(at)latin good
Using LC_COLLATE = "ss_ZA"
Using LC_CTYPE = "ss_ZA"
ss_ZA good
Using LC_COLLATE = "st_ZA.utf8"
Using LC_CTYPE = "st_ZA.utf8"
st_ZA.utf8 good
Using LC_COLLATE = "sv_FI.utf8"
Using LC_CTYPE = "sv_FI.utf8"
sv_FI.utf8 good
Using LC_COLLATE = "sv_SE.utf8"
Using LC_CTYPE = "sv_SE.utf8"
sv_SE.utf8 good
Using LC_COLLATE = "sw_KE"
Using LC_CTYPE = "sw_KE"
sw_KE good
Using LC_COLLATE = "sw_TZ"
Using LC_CTYPE = "sw_TZ"
sw_TZ good
Using LC_COLLATE = "szl_PL"
Using LC_CTYPE = "szl_PL"
szl_PL good
Using LC_COLLATE = "ta_IN"
Using LC_CTYPE = "ta_IN"
ta_IN good
Using LC_COLLATE = "ta_LK"
Using LC_CTYPE = "ta_LK"
ta_LK good
Using LC_COLLATE = "tcy_IN.utf8"
Using LC_CTYPE = "tcy_IN.utf8"
tcy_IN.utf8 good
Using LC_COLLATE = "te_IN"
Using LC_CTYPE = "te_IN"
te_IN good
Using LC_COLLATE = "tg_TJ.utf8"
Using LC_CTYPE = "tg_TJ.utf8"
tg_TJ.utf8 good
Using LC_COLLATE = "the_NP"
Using LC_CTYPE = "the_NP"
the_NP good
Using LC_COLLATE = "th_TH.utf8"
Using LC_CTYPE = "th_TH.utf8"
th_TH.utf8 good
Using LC_COLLATE = "ti_ER"
Using LC_CTYPE = "ti_ER"
ti_ER good
Using LC_COLLATE = "ti_ET"
Using LC_CTYPE = "ti_ET"
ti_ET good
Using LC_COLLATE = "tig_ER"
Using LC_CTYPE = "tig_ER"
tig_ER good
Using LC_COLLATE = "tk_TM"
Using LC_CTYPE = "tk_TM"
tk_TM good
Using LC_COLLATE = "tl_PH.utf8"
Using LC_CTYPE = "tl_PH.utf8"
tl_PH.utf8 good
Using LC_COLLATE = "tn_ZA"
Using LC_CTYPE = "tn_ZA"
tn_ZA good
Using LC_COLLATE = "tr_CY.utf8"
Using LC_CTYPE = "tr_CY.utf8"
tr_CY.utf8 good
Using LC_COLLATE = "tr_TR.utf8"
Using LC_CTYPE = "tr_TR.utf8"
tr_TR.utf8 good
Using LC_COLLATE = "ts_ZA"
Using LC_CTYPE = "ts_ZA"
ts_ZA good
Using LC_COLLATE = "tt_RU"
Using LC_CTYPE = "tt_RU"
tt_RU good
Using LC_COLLATE = "tt_RU(at)iqtelif"
Using LC_CTYPE = "tt_RU(at)iqtelif"
tt_RU(at)iqtelif good
Using LC_COLLATE = "ug_CN"
Using LC_CTYPE = "ug_CN"
ug_CN good
Using LC_COLLATE = "uk_UA.utf8"
Using LC_CTYPE = "uk_UA.utf8"
uk_UA.utf8 good
Using LC_COLLATE = "unm_US"
Using LC_CTYPE = "unm_US"
unm_US good
Using LC_COLLATE = "ur_IN"
Using LC_CTYPE = "ur_IN"
ur_IN good
Using LC_COLLATE = "ur_PK"
Using LC_CTYPE = "ur_PK"
ur_PK good
Using LC_COLLATE = "uz_UZ(at)cyrillic"
Using LC_CTYPE = "uz_UZ(at)cyrillic"
uz_UZ(at)cyrillic good
Using LC_COLLATE = "uz_UZ.utf8"
Using LC_CTYPE = "uz_UZ.utf8"
uz_UZ.utf8 good
Using LC_COLLATE = "ve_ZA"
Using LC_CTYPE = "ve_ZA"
ve_ZA good
Using LC_COLLATE = "vi_VN"
Using LC_CTYPE = "vi_VN"
vi_VN good
Using LC_COLLATE = "wa_BE.utf8"
Using LC_CTYPE = "wa_BE.utf8"
wa_BE.utf8 good
Using LC_COLLATE = "wae_CH"
Using LC_CTYPE = "wae_CH"
wae_CH good
Using LC_COLLATE = "wal_ET"
Using LC_CTYPE = "wal_ET"
wal_ET good
Using LC_COLLATE = "wo_SN"
Using LC_CTYPE = "wo_SN"
wo_SN good
Using LC_COLLATE = "xh_ZA.utf8"
Using LC_CTYPE = "xh_ZA.utf8"
xh_ZA.utf8 good
Using LC_COLLATE = "yi_US.utf8"
Using LC_CTYPE = "yi_US.utf8"
yi_US.utf8 good
Using LC_COLLATE = "yo_NG"
Using LC_CTYPE = "yo_NG"
yo_NG good
Using LC_COLLATE = "yue_HK"
Using LC_CTYPE = "yue_HK"
yue_HK good
Using LC_COLLATE = "zh_CN.utf8"
Using LC_CTYPE = "zh_CN.utf8"
zh_CN.utf8 good
Using LC_COLLATE = "zh_HK.utf8"
Using LC_CTYPE = "zh_HK.utf8"
zh_HK.utf8 good
Using LC_COLLATE = "zh_SG.utf8"
Using LC_CTYPE = "zh_SG.utf8"
zh_SG.utf8 good
Using LC_COLLATE = "zh_TW.utf8"
Using LC_CTYPE = "zh_TW.utf8"
zh_TW.utf8 good
Using LC_COLLATE = "zu_ZA.utf8"
Using LC_CTYPE = "zu_ZA.utf8"
zu_ZA.utf8 good

Thanks!

Stephen

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Geoghegan 2016-03-23 02:33:49 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Previous Message Stephen Frost 2016-03-23 01:45:44 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 2016-03-23 01:53:18 Re: multivariate statistics v14
Previous Message Stephen Frost 2016-03-23 01:45:44 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)