Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5) - Mailing list pgsql-bugs

From Stephen Frost
Subject Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Date
Msg-id 20160323014955.GN3127@tamriel.snowman.net
Whole thread Raw
In response to Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 ...

=46rom IRC (not mine), "debian testing, glibc 2.22-3":

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

Thanks!

Stephen

pgsql-bugs by date:

Previous
From: Stephen Frost
Date:
Subject: Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)
Next
From: Peter Geoghegan
Date:
Subject: Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5)