Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oYTGM-0003ey-JF for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Sep 2022 14:21:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oYTGL-0004Y1-Hy for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Sep 2022 14:21:13 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oYTEs-0006fF-29 for pgsql-hackers@lists.postgresql.org; Wed, 14 Sep 2022 14:19:42 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oYTEn-0007XZ-6o for pgsql-hackers@postgresql.org; Wed, 14 Sep 2022 14:19:41 +0000 Received: from mail.postgrespro.ru (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id C6C4421C04FB; Wed, 14 Sep 2022 17:19:34 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1663165174; bh=5EYJPRQiEWGtpvN6aXI1kOvFWYwuQwTACXwYMBqFrz8=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=ATUv9NyIwiPMSyR8BZomwJg85rdFgBo3W+4vwSKjPBMLgYp0kM6Dr7Y0pBfb26/4w pD3B97h5C6SPKO4pwSbWc6Srdc00OgLBkikbAIYIfTLLpNkvJHfZxnVpltnf7oebI1 k8ZDwrHELoXr3Es3fxaCJ/N8Lw0XnaTeuLBSkCfU= MIME-Version: 1.0 Date: Wed, 14 Sep 2022 17:19:34 +0300 From: Marina Polyakova To: pgsql-hackers@postgresql.org Cc: Justin Pryzby , Julien Rouhaud , Daniel Verite , AndrewBille@gmail.com, michael@paquier.xyz, peter.eisentraut@enterprisedb.com Subject: Re: ICU for global collation In-Reply-To: <38d2aac40a991b20adf032e509c6eff5@postgrespro.ru> References: <20220628013205.GH19662@telsasoft.com> <7d74b2d7-7fc6-f55b-3f77-c0e05569b64e@enterprisedb.com> <7ad26354e75259f59c4a6c6997b8ee32@postgrespro.ru> <20220824085923.jro5ao2m5b4mdll5@jrouhaud> <13468bee-a5b4-65aa-932c-c12584f4458d@enterprisedb.com> <7c99c132dc9c0ac630e0127f032ac480@postgrespro.ru> <20220909164625.GN31833@telsasoft.com> <60facfef2a8d54b227500260e86d823e@postgrespro.ru> <1f86f120-7b02-68f6-a434-132d054afe33@enterprisedb.com> <38d2aac40a991b20adf032e509c6eff5@postgrespro.ru> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <6dd6db0984d86a51b7255ba79f111971@postgrespro.ru> X-Sender: m.polyakova@postgrespro.ru Organization: Postgres Professional Content-Type: multipart/mixed; boundary="=_68c179b2aadb551d50d77713ecb6edf9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_68c179b2aadb551d50d77713ecb6edf9 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hello! I was surprised that it is allowed to create clusters/databases where the default ICU collations do not actually work due to unsupported encodings: $ initdb --encoding SQL_ASCII --locale-provider icu --icu-locale en-US -D data && pg_ctl -D data -l logfile start && psql -c "SELECT 'a' < 'b'" template1 ... waiting for server to start.... done server started ERROR: encoding "SQL_ASCII" not supported by ICU $ createdb --encoding SQL_ASCII --locale-provider icu --icu-locale en-US --template template0 mydb && psql -c "SELECT 'a' < 'b'" mydb ERROR: encoding "SQL_ASCII" not supported by ICU The patch diff_check_icu_encoding.patch prohibits the creation of such objects... -- Marina Polyakova Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_68c179b2aadb551d50d77713ecb6edf9 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=diff_check_icu_encoding.patch Content-Disposition: attachment; filename=diff_check_icu_encoding.patch; size=3227 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwppbmRleCA2ZmY0OGJiMThmMzYzOWFlNDVkOTUyOGIz MmRmNTFhNGFlYmM2MGMwLi4wNzc1OGQxNWU4NjEzZDVhMDQ5NTM3ZGRmMmM1OTkyZTU3YWQ2NDI0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCkBAIC0xMDQyLDExICsxMDQyLDE2IEBAIGNy ZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCQkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCiAJCQkJCSBlcnJtc2coIklDVSBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQiKSkpOwot CX0KIAotCWlmIChkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJCWNoZWNrX2lj dV9sb2NhbGUoZGJpY3Vsb2NhbGUpOwogCisJCWlmICghKGlzX2VuY29kaW5nX3N1cHBvcnRlZF9i eV9pY3UoZW5jb2RpbmcpKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJlbmNvZGluZyBcIiVz XCIgaXMgbm90IHN1cHBvcnRlZCB3aXRoIElDVSBwcm92aWRlciIsCisJCQkJCQkJcGdfZW5jb2Rp bmdfdG9fY2hhcihlbmNvZGluZykpKSk7CisJfQorCiAJLyoKIAkgKiBDaGVjayB0aGF0IHRoZSBu ZXcgZW5jb2RpbmcgYW5kIGxvY2FsZSBzZXR0aW5ncyBtYXRjaCB0aGUgc291cmNlCiAJICogZGF0 YWJhc2UuICBXZSBpbnNpc3Qgb24gdGhpcyBiZWNhdXNlIHdlIHNpbXBseSBjb3B5IHRoZSBzb3Vy Y2UgZGF0YSAtLS0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jp bi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggZTAwODM3ZWNhY2Y0ODg1Y2YyYTE3NjE2OGMyODNmM2U2 N2M2ZWI1My4uOGE3NjJjZWQ4MzQwYzlkODI1NmY3ODMyYTRjMTlhNDNmMWQ1NTM4YSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRi LmMKQEAgLTIzNjIsNiArMjM2MiwxNiBAQCBzZXR1cF9sb2NhbGVfZW5jb2Rpbmcodm9pZCkKIAlp ZiAoIWNoZWNrX2xvY2FsZV9lbmNvZGluZyhsY19jdHlwZSwgZW5jb2RpbmdpZCkgfHwKIAkJIWNo ZWNrX2xvY2FsZV9lbmNvZGluZyhsY19jb2xsYXRlLCBlbmNvZGluZ2lkKSkKIAkJZXhpdCgxKTsJ CQkJLyogY2hlY2tfbG9jYWxlX2VuY29kaW5nIHByaW50ZWQgdGhlIGVycm9yICovCisKKwlpZiAo bG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgJiYKKwkJIShpc19lbmNvZGluZ19z dXBwb3J0ZWRfYnlfaWN1KGVuY29kaW5naWQpKSkKKwl7CisJCXBnX2xvZ19lcnJvcigiZW5jb2Rp bmcgXCIlc1wiIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBJQ1UgcHJvdmlkZXIiLAorCQkJCQkgcGdf ZW5jb2RpbmdfdG9fY2hhcihlbmNvZGluZ2lkKSk7CisJCXBnX2xvZ19lcnJvcl9oaW50KCJSZXJ1 biAlcyBhbmQgY2hvb3NlIGEgbWF0Y2hpbmcgY29tYmluYXRpb24uIiwKKwkJCQkJCSAgcHJvZ25h bWUpOworCQlleGl0KDEpOworCX0KIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi90 LzAwMV9pbml0ZGIucGwgYi9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKaW5kZXggYTM3 ZjZkZDliMzM0YjZlZTIyZDlmZGQ0ZDUxNDIyNzk1Y2I1NGEzOS4uZTRiYjNkMGNkZDljMjM3Mjlj NWZiOTc4ODYzNzRmOGRmNTU4ZjIzOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvdC8wMDFf aW5pdGRiLnBsCisrKyBiL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbApAQCAtMTE4LDYg KzExOCwxNSBAQCBpZiAoJEVOVnt3aXRoX2ljdX0gZXEgJ3llcycpCiAJCV0sCiAJCXFyL0ZBVEFM OiAgY291bGQgbm90IG9wZW4gY29sbGF0b3IgZm9yIGxvY2FsZS8sCiAJCSdmYWlscyBmb3IgaW52 YWxpZCBJQ1UgbG9jYWxlJyk7CisKKwljb21tYW5kX2ZhaWxzX2xpa2UoCisJCVsKKwkJCSdpbml0 ZGInLCAgICAgICAgICAgICAgICAnLS1uby1zeW5jJywKKwkJCSctLWxvY2FsZS1wcm92aWRlcj1p Y3UnLCAnLS1pY3UtbG9jYWxlPWVuJywKKwkJCSctLWVuY29kaW5nPVNRTF9BU0NJSScsICAiJHRl bXBkaXIvZGF0YVgiCisJCV0sCisJCXFyL2Vycm9yOiBlbmNvZGluZyAiU1FMX0FTQ0lJIiBpcyBu b3Qgc3VwcG9ydGVkIHdpdGggSUNVIHByb3ZpZGVyLywKKwkJJ2VuY29kaW5nICJTUUxfQVNDSUki IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBJQ1UgcHJvdmlkZXInKTsKIH0KIGVsc2UKIHsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbCBiL3NyYy9iaW4vc2NyaXB0 cy90LzAyMF9jcmVhdGVkYi5wbAppbmRleCBlOTFjMWQwMTNkMDhkOGJkMWUzYTkyZjJhYmE5NThj NWM3NzEzY2E2Li5lYWFiM2NhYTMyNjY5ZWFkMDY4NzE5ZDk4YmI5NTNjNWM2ZmY1YTE3IDEwMDY0 NAotLS0gYS9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKKysrIGIvc3JjL2Jpbi9z Y3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCkBAIC01MCw2ICs1MCwxNiBAQCBpZiAoJEVOVnt3aXRo X2ljdX0gZXEgJ3llcycpCiAJCV0sCiAJCSdmYWlscyBmb3IgaW52YWxpZCBJQ1UgbG9jYWxlJyk7 CiAKKwkkbm9kZS0+Y29tbWFuZF9mYWlsc19saWtlKAorCQlbCisJCQknY3JlYXRlZGInLCAgICAg ICAgJy1UJywKKwkJCSd0ZW1wbGF0ZTAnLCAgICAgICAnLS1sb2NhbGUtcHJvdmlkZXI9aWN1JywK KwkJCSctLWljdS1sb2NhbGU9ZW4nLCAnLS1lbmNvZGluZz1TUUxfQVNDSUknLAorCQkJJ2Zvb2Jh clgnCisJCV0sCisJCXFyL0VSUk9SOiAgZW5jb2RpbmcgIlNRTF9BU0NJSSIgaXMgbm90IHN1cHBv cnRlZCB3aXRoIElDVSBwcm92aWRlci8sCisJCSdlbmNvZGluZyAiU1FMX0FTQ0lJIiBpcyBub3Qg c3VwcG9ydGVkIHdpdGggSUNVIHByb3ZpZGVyJyk7CisKIAkjIGFkZGl0aW9uYWwgbm9kZSwgd2hp Y2ggdXNlcyB0aGUgaWN1IHByb3ZpZGVyCiAJbXkgJG5vZGUyID0gUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3Rlci0+bmV3KCdpY3UnKTsKIAkkbm9kZTItPmluaXQoZXh0cmEgPT4gWyctLWxvY2FsZS1w cm92aWRlcj1pY3UnLCAnLS1pY3UtbG9jYWxlPWVuJ10pOwo= --=_68c179b2aadb551d50d77713ecb6edf9--