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: