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 1olt4p-00036f-4h for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Oct 2022 14:32:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1olt4n-0007Os-Ua for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Oct 2022 14:32:45 +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 1olt4n-0007Nd-7F for pgsql-hackers@lists.postgresql.org; Fri, 21 Oct 2022 14:32:45 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1olt4i-0003tO-QD for pgsql-hackers@postgresql.org; Fri, 21 Oct 2022 14:32:44 +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 2B8F721C5736; Fri, 21 Oct 2022 17:32:38 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1666362758; bh=kGLq6okVEN+iVP0hGZevtwi6bjHeUiEfxXQnfeY7xOU=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=K/teVZ7S+UrIPuvRHhiZT3qyhoLi9tpqwggZVkag+KbCm+7tnY+amUpALh6JyVUb7 j5SIdb//mGBT3qxsGBWdd/JuY8VpNk4IJQPpZ1wfs3DgGffMUR1f3OIts4GybWsEHy kcBeKgO7/+xkE+dVExXIA6FHeH7dKm9G1o1j1rL8= MIME-Version: 1.0 Date: Fri, 21 Oct 2022 17:32:38 +0300 From: Marina Polyakova To: pgsql-hackers@postgresql.org Cc: Kyotaro Horiguchi , pryzby@telsasoft.com, rjuju123@gmail.com, daniel@manitou-mail.org, AndrewBille@gmail.com, michael@paquier.xyz, peter.eisentraut@enterprisedb.com Subject: Re: ICU for global collation In-Reply-To: <79f410460c4fc9534000785adb8bf39a@postgrespro.ru> References: <1f86f120-7b02-68f6-a434-132d054afe33@enterprisedb.com> <38d2aac40a991b20adf032e509c6eff5@postgrespro.ru> <6dd6db0984d86a51b7255ba79f111971@postgrespro.ru> <20220915.155210.529619933474389138.horikyota.ntt@gmail.com> <65ef1a8a-1fc3-3dc3-c7aa-6b9f649014b2@enterprisedb.com> <9ba4cd1ea6ed6b7b15c0ff15e6f540cd@postgrespro.ru> <218b963e-dd66-626a-abd8-962afb587876@enterprisedb.com> <36737f855bf3c44e701097cafd0ee2c9@postgrespro.ru> <73f18f58-5eaa-b09b-407d-a862a48635b1@enterprisedb.com> <79f410460c4fc9534000785adb8bf39a@postgrespro.ru> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <727b5d5160f845dcf5e0818e625a6e56@postgrespro.ru> X-Sender: m.polyakova@postgrespro.ru Organization: Postgres Professional Content-Type: multipart/mixed; boundary="=_4fb89d2f2e3f09c841c4b3d9c63d6304" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_4fb89d2f2e3f09c841c4b3d9c63d6304 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hello! I discovered an interesting behaviour during installcheck runs when the cluster was initialized with ICU locale provider: $ initdb --locale-provider icu --icu-locale en-US -D data && pg_ctl -D data -l logfile start 1) The ECPG tests fail because they use the SQL_ASCII encoding [1], the database template0 uses the ICU locale provider and SQL_ASCII is not supported by ICU: $ make -C src/interfaces/ecpg/ installcheck ... ============== creating database "ecpg1_regression" ============== ERROR: encoding "SQL_ASCII" is not supported with ICU provider ERROR: database "ecpg1_regression" does not exist command failed: "/home/marina/postgresql/master/my/inst/bin/psql" -X -c "CREATE DATABASE \"ecpg1_regression\" TEMPLATE=template0 ENCODING='SQL_ASCII'" -c "ALTER DATABASE \"ecpg1_regression\" SET lc_messages TO 'C';ALTER DATABASE \"ecpg1_regression\" SET lc_monetary TO 'C';ALTER DATABASE \"ecpg1_regression\" SET lc_numeric TO 'C';ALTER DATABASE \"ecpg1_regression\" SET lc_time TO 'C';ALTER DATABASE \"ecpg1_regression\" SET bytea_output TO 'hex';ALTER DATABASE \"ecpg1_regression\" SET timezone_abbreviations TO 'Default';" "postgres" 2) The option --no-locale in pg_regress is described as "use C locale" [2]. But in this case the created databases actually use the ICU locale provider with the ICU cluster locale from template0 (see diff_check_backend_used_provider.patch): $ make NO_LOCALE=1 installcheck In regression.diffs: diff -U3 /home/marina/postgresql/master/src/test/regress/expected/test_setup.out /home/marina/postgresql/master/src/test/regress/results/test_setup.out --- /home/marina/postgresql/master/src/test/regress/expected/test_setup.out 2022-09-27 05:31:27.674628815 +0300 +++ /home/marina/postgresql/master/src/test/regress/results/test_setup.out 2022-10-21 15:09:31.232992885 +0300 @@ -143,6 +143,798 @@ \set filename :abs_srcdir '/data/person.data' COPY person FROM :'filename'; VACUUM ANALYZE person; +NOTICE: varstrfastcmp_locale sss->collate_c 0 sss->locale 0xefacd0 +NOTICE: varstrfastcmp_locale sss->locale->provider i +NOTICE: varstrfastcmp_locale sss->locale->info.icu.locale en-US ... The patch diff_fix_pg_regress_create_database.patch fixes both issues for me. [1] https://github.com/postgres/postgres/blob/ce20f8b9f4354b46b40fd6ebf7ce5c37d08747e0/src/interfaces/ecpg/test/Makefile#L18 [2] https://github.com/postgres/postgres/blob/ce20f8b9f4354b46b40fd6ebf7ce5c37d08747e0/src/test/regress/pg_regress.c#L1992 -- Marina Polyakova Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_4fb89d2f2e3f09c841c4b3d9c63d6304 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=diff_check_backend_used_provider.patch Content-Disposition: attachment; filename=diff_check_backend_used_provider.patch; size=9925 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hmdW5jLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNoZnVuYy5jCmluZGV4IGI1N2VkOTQ2YzQyYmI1NGVkZTgwMGU5 NTA0NWFhOTM3YThkYmFkODUuLmIzYzBmNmY3NTNmODQyODI3NDM4OTg0NGNjZjk3NzhhN2VkNDdl YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hmdW5jLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGZ1bmMuYwpAQCAtMjgxLDYgKzI4MSwxNCBAQCBo YXNodGV4dChQR19GVU5DVElPTl9BUkdTKQogCWlmICghbGNfY29sbGF0ZV9pc19jKGNvbGxpZCkp CiAJCW15bG9jYWxlID0gcGdfbmV3bG9jYWxlX2Zyb21fY29sbGF0aW9uKGNvbGxpZCk7CiAKKwll bG9nKE5PVElDRSwgImhhc2h0ZXh0IGxjX2NvbGxhdGVfaXNfYyhjb2xsaWQpICVkIG15bG9jYWxl ICVwIiwgbGNfY29sbGF0ZV9pc19jKGNvbGxpZCksIG15bG9jYWxlKTsKKwlpZiAobXlsb2NhbGUp CisJeworCQllbG9nKE5PVElDRSwgImhhc2h0ZXh0IG15bG9jYWxlLT5wcm92aWRlciAlYyIsIG15 bG9jYWxlLT5wcm92aWRlcik7CisJCWlmIChteWxvY2FsZS0+cHJvdmlkZXIgPT0gQ09MTFBST1ZJ REVSX0lDVSkKKwkJCWVsb2coTk9USUNFLCAiaGFzaHRleHQgbXlsb2NhbGUtPmluZm8uaWN1Lmxv Y2FsZSAlcyIsIG15bG9jYWxlLT5pbmZvLmljdS5sb2NhbGUgPyBteWxvY2FsZS0+aW5mby5pY3Uu bG9jYWxlIDogIihudWxsKSIpOworCX0KKwogCWlmICghbXlsb2NhbGUgfHwgbXlsb2NhbGUtPmRl dGVybWluaXN0aWMpCiAJewogCQlyZXN1bHQgPSBoYXNoX2FueSgodW5zaWduZWQgY2hhciAqKSBW QVJEQVRBX0FOWShrZXkpLApAQCAtMzM3LDYgKzM0NSwxNCBAQCBoYXNodGV4dGV4dGVuZGVkKFBH X0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCFsY19jb2xsYXRlX2lzX2MoY29sbGlkKSkKIAkJbXlsb2Nh bGUgPSBwZ19uZXdsb2NhbGVfZnJvbV9jb2xsYXRpb24oY29sbGlkKTsKIAorCWVsb2coTk9USUNF LCAiaGFzaHRleHRleHRlbmRlZCBsY19jb2xsYXRlX2lzX2MoY29sbGlkKSAlZCBteWxvY2FsZSAl cCIsIGxjX2NvbGxhdGVfaXNfYyhjb2xsaWQpLCBteWxvY2FsZSk7CisJaWYgKG15bG9jYWxlKQor CXsKKwkJZWxvZyhOT1RJQ0UsICJoYXNodGV4dGV4dGVuZGVkIG15bG9jYWxlLT5wcm92aWRlciAl YyIsIG15bG9jYWxlLT5wcm92aWRlcik7CisJCWlmIChteWxvY2FsZS0+cHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0lDVSkKKwkJCWVsb2coTk9USUNFLCAiaGFzaHRleHRleHRlbmRlZCBteWxvY2Fs ZS0+aW5mby5pY3UubG9jYWxlICVzIiwgbXlsb2NhbGUtPmluZm8uaWN1LmxvY2FsZSA/IG15bG9j YWxlLT5pbmZvLmljdS5sb2NhbGUgOiAiKG51bGwpIik7CisJfQorCiAJaWYgKCFteWxvY2FsZSB8 fCBteWxvY2FsZS0+ZGV0ZXJtaW5pc3RpYykKIAl7CiAJCXJlc3VsdCA9IGhhc2hfYW55X2V4dGVu ZGVkKCh1bnNpZ25lZCBjaGFyICopIFZBUkRBVEFfQU5ZKGtleSksCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZWdleC9yZWdjX3BnX2xvY2FsZS5jIGIvc3JjL2JhY2tlbmQvcmVnZXgvcmVnY19w Z19sb2NhbGUuYwppbmRleCAwMmQ0NjJhNjU5Nzc4MDE2ZjNjNDQ3OWQ0MjViYTBhODRmZWI2ZTI2 Li45NjI3Yzg0YTdjY2ZiNGM0MDEzNTU2YTUxYzk4OWU5ZTZkNjExNjM0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZWdleC9yZWdjX3BnX2xvY2FsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlZ2V4 L3JlZ2NfcGdfbG9jYWxlLmMKQEAgLTI0Myw2ICsyNDMsOCBAQCBwZ19zZXRfcmVnZXhfY29sbGF0 aW9uKE9pZCBjb2xsYXRpb24pCiAJCQkJIGVycmhpbnQoIlVzZSB0aGUgQ09MTEFURSBjbGF1c2Ug dG8gc2V0IHRoZSBjb2xsYXRpb24gZXhwbGljaXRseS4iKSkpOwogCX0KIAorCWVsb2coTk9USUNF LCAicGdfc2V0X3JlZ2V4X2NvbGxhdGlvbiBsY19jdHlwZV9pc19jKGNvbGxpZCkgJWQiLCBsY19j dHlwZV9pc19jKGNvbGxhdGlvbikpOworCiAJaWYgKGxjX2N0eXBlX2lzX2MoY29sbGF0aW9uKSkK IAl7CiAJCS8qIEMvUE9TSVggY29sbGF0aW9ucyB1c2UgdGhpcyBwYXRoIHJlZ2FyZGxlc3Mgb2Yg ZGF0YWJhc2UgZW5jb2RpbmcgKi8KQEAgLTI1OSw2ICsyNjEsMTQgQEAgcGdfc2V0X3JlZ2V4X2Nv bGxhdGlvbihPaWQgY29sbGF0aW9uKQogCQkgKi8KIAkJcGdfcmVnZXhfbG9jYWxlID0gcGdfbmV3 bG9jYWxlX2Zyb21fY29sbGF0aW9uKGNvbGxhdGlvbik7CiAKKwkJZWxvZyhOT1RJQ0UsICJwZ19z ZXRfcmVnZXhfY29sbGF0aW9uIHBnX3JlZ2V4X2xvY2FsZSAlcCIsIHBnX3JlZ2V4X2xvY2FsZSk7 CisJCWlmIChwZ19yZWdleF9sb2NhbGUpCisJCXsKKwkJCWVsb2coTk9USUNFLCAicGdfc2V0X3Jl Z2V4X2NvbGxhdGlvbiBwZ19yZWdleF9sb2NhbGUtPnByb3ZpZGVyICVjIiwgcGdfcmVnZXhfbG9j YWxlLT5wcm92aWRlcik7CisJCQlpZiAocGdfcmVnZXhfbG9jYWxlLT5wcm92aWRlciA9PSBDT0xM UFJPVklERVJfSUNVKQorCQkJCWVsb2coTk9USUNFLCAicGdfc2V0X3JlZ2V4X2NvbGxhdGlvbiBw Z19yZWdleF9sb2NhbGUtPmluZm8uaWN1LmxvY2FsZSAlcyIsIHBnX3JlZ2V4X2xvY2FsZS0+aW5m by5pY3UubG9jYWxlID8gcGdfcmVnZXhfbG9jYWxlLT5pbmZvLmljdS5sb2NhbGUgOiAiKG51bGwp Iik7CisJCX0KKwogCQlpZiAocGdfcmVnZXhfbG9jYWxlICYmICFwZ19yZWdleF9sb2NhbGUtPmRl dGVybWluaXN0aWMpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Zm9ybWF0dGluZy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYwppbmRleCAy NmY0OThiNWRmNGQ4ZWIyODBhMGU2YWY2OWZkOTJkNGNlMGQ4OWI3Li5hMDYxNmEwNDU3YzlhYmU0 NjM1MDY0OTY0MTQ2MDI3MDA4MjcxZmY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZm9ybWF0dGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMK QEAgLTE2ODIsNiArMTY4Miw4IEBAIHN0cl90b2xvd2VyKGNvbnN0IGNoYXIgKmJ1ZmYsIHNpemVf dCBuYnl0ZXMsIE9pZCBjb2xsaWQpCiAJCQkJIGVycmhpbnQoIlVzZSB0aGUgQ09MTEFURSBjbGF1 c2UgdG8gc2V0IHRoZSBjb2xsYXRpb24gZXhwbGljaXRseS4iKSkpOwogCX0KIAorCWVsb2coTk9U SUNFLCAic3RyX3RvbG93ZXIgbGNfY3R5cGVfaXNfYyhjb2xsaWQpICVkIiwgbGNfY3R5cGVfaXNf Yyhjb2xsaWQpKTsKKwogCS8qIEMvUE9TSVggY29sbGF0aW9ucyB1c2UgdGhpcyBwYXRoIHJlZ2Fy ZGxlc3Mgb2YgZGF0YWJhc2UgZW5jb2RpbmcgKi8KIAlpZiAobGNfY3R5cGVfaXNfYyhjb2xsaWQp KQogCXsKQEAgLTE2OTMsNiArMTY5NSwxNCBAQCBzdHJfdG9sb3dlcihjb25zdCBjaGFyICpidWZm LCBzaXplX3QgbmJ5dGVzLCBPaWQgY29sbGlkKQogCiAJCW15bG9jYWxlID0gcGdfbmV3bG9jYWxl X2Zyb21fY29sbGF0aW9uKGNvbGxpZCk7CiAKKwkJZWxvZyhOT1RJQ0UsICJzdHJfdG9sb3dlciBt eWxvY2FsZSAlcCIsIG15bG9jYWxlKTsKKwkJaWYgKG15bG9jYWxlKQorCQl7CisJCQllbG9nKE5P VElDRSwgInN0cl90b2xvd2VyIG15bG9jYWxlLT5wcm92aWRlciAlYyIsIG15bG9jYWxlLT5wcm92 aWRlcik7CisJCQlpZiAobXlsb2NhbGUtPnByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJ CQkJZWxvZyhOT1RJQ0UsICJzdHJfdG9sb3dlciBteWxvY2FsZS0+aW5mby5pY3UubG9jYWxlICVz IiwgbXlsb2NhbGUtPmluZm8uaWN1LmxvY2FsZSA/IG15bG9jYWxlLT5pbmZvLmljdS5sb2NhbGUg OiAiKG51bGwpIik7CisJCX0KKwogI2lmZGVmIFVTRV9JQ1UKIAkJaWYgKG15bG9jYWxlICYmIG15 bG9jYWxlLT5wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCQl7CkBAIC0xODA0LDYgKzE4 MTQsOCBAQCBzdHJfdG91cHBlcihjb25zdCBjaGFyICpidWZmLCBzaXplX3QgbmJ5dGVzLCBPaWQg Y29sbGlkKQogCQkJCSBlcnJoaW50KCJVc2UgdGhlIENPTExBVEUgY2xhdXNlIHRvIHNldCB0aGUg Y29sbGF0aW9uIGV4cGxpY2l0bHkuIikpKTsKIAl9CiAKKwllbG9nKE5PVElDRSwgInN0cl90b3Vw cGVyIGxjX2N0eXBlX2lzX2MoY29sbGlkKSAlZCIsIGxjX2N0eXBlX2lzX2MoY29sbGlkKSk7CisK IAkvKiBDL1BPU0lYIGNvbGxhdGlvbnMgdXNlIHRoaXMgcGF0aCByZWdhcmRsZXNzIG9mIGRhdGFi YXNlIGVuY29kaW5nICovCiAJaWYgKGxjX2N0eXBlX2lzX2MoY29sbGlkKSkKIAl7CkBAIC0xODE1 LDYgKzE4MjcsMTQgQEAgc3RyX3RvdXBwZXIoY29uc3QgY2hhciAqYnVmZiwgc2l6ZV90IG5ieXRl cywgT2lkIGNvbGxpZCkKIAogCQlteWxvY2FsZSA9IHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlv bihjb2xsaWQpOwogCisJCWVsb2coTk9USUNFLCAic3RyX3RvdXBwZXIgbXlsb2NhbGUgJXAiLCBt eWxvY2FsZSk7CisJCWlmIChteWxvY2FsZSkKKwkJeworCQkJZWxvZyhOT1RJQ0UsICJzdHJfdG91 cHBlciBteWxvY2FsZS0+cHJvdmlkZXIgJWMiLCBteWxvY2FsZS0+cHJvdmlkZXIpOworCQkJaWYg KG15bG9jYWxlLT5wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCQkJCWVsb2coTk9USUNF LCAic3RyX3RvdXBwZXIgbXlsb2NhbGUtPmluZm8uaWN1LmxvY2FsZSAlcyIsIG15bG9jYWxlLT5p bmZvLmljdS5sb2NhbGUgPyBteWxvY2FsZS0+aW5mby5pY3UubG9jYWxlIDogIihudWxsKSIpOwor CQl9CisKICNpZmRlZiBVU0VfSUNVCiAJCWlmIChteWxvY2FsZSAmJiBteWxvY2FsZS0+cHJvdmlk ZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJewpAQCAtMTkyNyw2ICsxOTQ3LDggQEAgc3RyX2lu aXRjYXAoY29uc3QgY2hhciAqYnVmZiwgc2l6ZV90IG5ieXRlcywgT2lkIGNvbGxpZCkKIAkJCQkg ZXJyaGludCgiVXNlIHRoZSBDT0xMQVRFIGNsYXVzZSB0byBzZXQgdGhlIGNvbGxhdGlvbiBleHBs aWNpdGx5LiIpKSk7CiAJfQogCisJZWxvZyhOT1RJQ0UsICJzdHJfaW5pdGNhcCBsY19jdHlwZV9p c19jKGNvbGxpZCkgJWQiLCBsY19jdHlwZV9pc19jKGNvbGxpZCkpOworCiAJLyogQy9QT1NJWCBj b2xsYXRpb25zIHVzZSB0aGlzIHBhdGggcmVnYXJkbGVzcyBvZiBkYXRhYmFzZSBlbmNvZGluZyAq LwogCWlmIChsY19jdHlwZV9pc19jKGNvbGxpZCkpCiAJewpAQCAtMTkzOCw2ICsxOTYwLDE0IEBA IHN0cl9pbml0Y2FwKGNvbnN0IGNoYXIgKmJ1ZmYsIHNpemVfdCBuYnl0ZXMsIE9pZCBjb2xsaWQp CiAKIAkJbXlsb2NhbGUgPSBwZ19uZXdsb2NhbGVfZnJvbV9jb2xsYXRpb24oY29sbGlkKTsKIAor CQllbG9nKE5PVElDRSwgInN0cl9pbml0Y2FwIG15bG9jYWxlICVwIiwgbXlsb2NhbGUpOworCQlp ZiAobXlsb2NhbGUpCisJCXsKKwkJCWVsb2coTk9USUNFLCAic3RyX2luaXRjYXAgbXlsb2NhbGUt PnByb3ZpZGVyICVjIiwgbXlsb2NhbGUtPnByb3ZpZGVyKTsKKwkJCWlmIChteWxvY2FsZS0+cHJv dmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCQllbG9nKE5PVElDRSwgInN0cl9pbml0Y2Fw IG15bG9jYWxlLT5pbmZvLmljdS5sb2NhbGUgJXMiLCBteWxvY2FsZS0+aW5mby5pY3UubG9jYWxl ID8gbXlsb2NhbGUtPmluZm8uaWN1LmxvY2FsZSA6ICIobnVsbCkiKTsKKwkJfQorCiAjaWZkZWYg VVNFX0lDVQogCQlpZiAobXlsb2NhbGUgJiYgbXlsb2NhbGUtPnByb3ZpZGVyID09IENPTExQUk9W SURFUl9JQ1UpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jCmluZGV4IDY4ZTJlNmY3YTcxOTg2 NmVhY2M1MDZlMTc4MGY2ZDFiNTg5NTE1OTkuLmRhY2YwNDRhNGVlMDU1NTViNDc0MjMwMGQwYzA3 OGIzODgwZGI2MGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMTAxMCw2ICsxMDEwLDE0 IEBAIGhhc2hicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoIWxjX2NvbGxhdGVfaXNfYyhj b2xsaWQpKQogCQlteWxvY2FsZSA9IHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihjb2xsaWQp OwogCisJZWxvZyhOT1RJQ0UsICJoYXNoYnBjaGFyIGxjX2NvbGxhdGVfaXNfYyhjb2xsaWQpICVk IG15bG9jYWxlICVwIiwgbGNfY29sbGF0ZV9pc19jKGNvbGxpZCksIG15bG9jYWxlKTsKKwlpZiAo bXlsb2NhbGUpCisJeworCQllbG9nKE5PVElDRSwgImhhc2hicGNoYXIgbXlsb2NhbGUtPnByb3Zp ZGVyICVjIiwgbXlsb2NhbGUtPnByb3ZpZGVyKTsKKwkJaWYgKG15bG9jYWxlLT5wcm92aWRlciA9 PSBDT0xMUFJPVklERVJfSUNVKQorCQkJZWxvZyhOT1RJQ0UsICJoYXNoYnBjaGFyIG15bG9jYWxl LT5pbmZvLmljdS5sb2NhbGUgJXMiLCBteWxvY2FsZS0+aW5mby5pY3UubG9jYWxlID8gbXlsb2Nh bGUtPmluZm8uaWN1LmxvY2FsZSA6ICIobnVsbCkiKTsKKwl9CisKIAlpZiAoIW15bG9jYWxlIHx8 IG15bG9jYWxlLT5kZXRlcm1pbmlzdGljKQogCXsKIAkJcmVzdWx0ID0gaGFzaF9hbnkoKHVuc2ln bmVkIGNoYXIgKikga2V5ZGF0YSwga2V5bGVuKTsKQEAgLTEwNzAsNiArMTA3OCwxNCBAQCBoYXNo YnBjaGFyZXh0ZW5kZWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoIWxjX2NvbGxhdGVfaXNfYyhj b2xsaWQpKQogCQlteWxvY2FsZSA9IHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihjb2xsaWQp OwogCisJZWxvZyhOT1RJQ0UsICJoYXNoYnBjaGFyZXh0ZW5kZWQgbGNfY29sbGF0ZV9pc19jKGNv bGxpZCkgJWQgbXlsb2NhbGUgJXAiLCBsY19jb2xsYXRlX2lzX2MoY29sbGlkKSwgbXlsb2NhbGUp OworCWlmIChteWxvY2FsZSkKKwl7CisJCWVsb2coTk9USUNFLCAiaGFzaGJwY2hhcmV4dGVuZGVk IG15bG9jYWxlLT5wcm92aWRlciAlYyIsIG15bG9jYWxlLT5wcm92aWRlcik7CisJCWlmIChteWxv Y2FsZS0+cHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWVsb2coTk9USUNFLCAiaGFz aGJwY2hhcmV4dGVuZGVkIG15bG9jYWxlLT5pbmZvLmljdS5sb2NhbGUgJXMiLCBteWxvY2FsZS0+ aW5mby5pY3UubG9jYWxlID8gbXlsb2NhbGUtPmluZm8uaWN1LmxvY2FsZSA6ICIobnVsbCkiKTsK Kwl9CisKIAlpZiAoIW15bG9jYWxlIHx8IG15bG9jYWxlLT5kZXRlcm1pbmlzdGljKQogCXsKIAkJ cmVzdWx0ID0gaGFzaF9hbnlfZXh0ZW5kZWQoKHVuc2lnbmVkIGNoYXIgKikga2V5ZGF0YSwga2V5 bGVuLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggYzVlN2VlN2NhMmQzMDczYzA2NzkyOGNm YTM1YzFlNzQ2MjE4YmI2NC4uMDEyNTY1ZGQyOTg2YzdhZTk3ODFmNjFkYmI1ZjcyNDc3MDU3NWZh YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0xNTIxLDYgKzE1MjEsOCBAQCB2YXJzdHJf Y21wKGNvbnN0IGNoYXIgKmFyZzEsIGludCBsZW4xLCBjb25zdCBjaGFyICphcmcyLCBpbnQgbGVu MiwgT2lkIGNvbGxpZCkKIAogCWNoZWNrX2NvbGxhdGlvbl9zZXQoY29sbGlkKTsKIAorCWVsb2co Tk9USUNFLCAidmFyc3RyX2NtcCBsY19jb2xsYXRlX2lzX2MoY29sbGlkKSAlZCIsIGxjX2NvbGxh dGVfaXNfYyhjb2xsaWQpKTsKKwogCS8qCiAJICogVW5mb3J0dW5hdGVseSwgdGhlcmUgaXMgbm8g c3RybmNvbGwoKSwgc28gaW4gdGhlIG5vbi1DIGxvY2FsZSBjYXNlIHdlCiAJICogaGF2ZSB0byBk byBzb21lIG1lbW9yeSBjb3B5aW5nLiAgVGhpcyB0dXJucyBvdXQgdG8gYmUgc2lnbmlmaWNhbnRs eQpAQCAtMTU0Myw2ICsxNTQ1LDE0IEBAIHZhcnN0cl9jbXAoY29uc3QgY2hhciAqYXJnMSwgaW50 IGxlbjEsIGNvbnN0IGNoYXIgKmFyZzIsIGludCBsZW4yLCBPaWQgY29sbGlkKQogCiAJCW15bG9j YWxlID0gcGdfbmV3bG9jYWxlX2Zyb21fY29sbGF0aW9uKGNvbGxpZCk7CiAKKwkJZWxvZyhOT1RJ Q0UsICJ2YXJzdHJfY21wIG15bG9jYWxlICVwIiwgbXlsb2NhbGUpOworCQlpZiAobXlsb2NhbGUp CisJCXsKKwkJCWVsb2coTk9USUNFLCAidmFyc3RyX2NtcCBteWxvY2FsZS0+cHJvdmlkZXIgJWMi LCBteWxvY2FsZS0+cHJvdmlkZXIpOworCQkJaWYgKG15bG9jYWxlLT5wcm92aWRlciA9PSBDT0xM UFJPVklERVJfSUNVKQorCQkJCWVsb2coTk9USUNFLCAidmFyc3RyX2NtcCBteWxvY2FsZS0+aW5m by5pY3UubG9jYWxlICVzIiwgbXlsb2NhbGUtPmluZm8uaWN1LmxvY2FsZSA/IG15bG9jYWxlLT5p bmZvLmljdS5sb2NhbGUgOiAiKG51bGwpIik7CisJCX0KKwogCQkvKgogCQkgKiBtZW1jbXAoKSBj YW4ndCB0ZWxsIHVzIHdoaWNoIG9mIHR3byB1bmVxdWFsIHN0cmluZ3Mgc29ydHMgZmlyc3QsCiAJ CSAqIGJ1dCBpdCdzIGEgY2hlYXAgd2F5IHRvIHRlbGwgaWYgdGhleSdyZSBlcXVhbC4gIFRlc3Rp bmcgc2hvd3MgdGhhdApAQCAtMjM3Nyw2ICsyMzg3LDE0IEBAIHZhcnN0cmZhc3RjbXBfbG9jYWxl KGNoYXIgKmExcCwgaW50IGxlbjEsIGNoYXIgKmEycCwgaW50IGxlbjIsIFNvcnRTdXBwb3J0IHNz dXApCiAJCXJldHVybiBzc3MtPmxhc3RfcmV0dXJuZWQ7CiAJfQogCisJZWxvZyhOT1RJQ0UsICJ2 YXJzdHJmYXN0Y21wX2xvY2FsZSBzc3MtPmNvbGxhdGVfYyAlZCBzc3MtPmxvY2FsZSAlcCIsIHNz cy0+Y29sbGF0ZV9jLCBzc3MtPmxvY2FsZSk7CisJaWYgKHNzcy0+bG9jYWxlKQorCXsKKwkJZWxv ZyhOT1RJQ0UsICJ2YXJzdHJmYXN0Y21wX2xvY2FsZSBzc3MtPmxvY2FsZS0+cHJvdmlkZXIgJWMi LCBzc3MtPmxvY2FsZS0+cHJvdmlkZXIpOworCQlpZiAoc3NzLT5sb2NhbGUtPnByb3ZpZGVyID09 IENPTExQUk9WSURFUl9JQ1UpCisJCQllbG9nKE5PVElDRSwgInZhcnN0cmZhc3RjbXBfbG9jYWxl IHNzcy0+bG9jYWxlLT5pbmZvLmljdS5sb2NhbGUgJXMiLCBzc3MtPmxvY2FsZS0+aW5mby5pY3Uu bG9jYWxlID8gc3NzLT5sb2NhbGUtPmluZm8uaWN1LmxvY2FsZSA6ICIobnVsbCkiKTsKKwl9CisK IAlpZiAoc3NzLT5sb2NhbGUpCiAJewogCQlpZiAoc3NzLT5sb2NhbGUtPnByb3ZpZGVyID09IENP TExQUk9WSURFUl9JQ1UpCkBAIC0yNDcyLDYgKzI0OTAsMTQgQEAgdmFyc3RyX2FiYnJldl9jb252 ZXJ0KERhdHVtIG9yaWdpbmFsLCBTb3J0U3VwcG9ydCBzc3VwKQogCWlmIChzc3MtPnR5cGlkID09 IEJQQ0hBUk9JRCkKIAkJbGVuID0gYnBjaGFydHJ1ZWxlbihhdXRob3JpdGF0aXZlX2RhdGEsIGxl bik7CiAKKwllbG9nKE5PVElDRSwgInZhcnN0cl9hYmJyZXZfY29udmVydCBzc3MtPmNvbGxhdGVf YyAlZCBzc3MtPmxvY2FsZSAlcCIsIHNzcy0+Y29sbGF0ZV9jLCBzc3MtPmxvY2FsZSk7CisJaWYg KHNzcy0+bG9jYWxlKQorCXsKKwkJZWxvZyhOT1RJQ0UsICJ2YXJzdHJfYWJicmV2X2NvbnZlcnQg c3NzLT5sb2NhbGUtPnByb3ZpZGVyICVjIiwgc3NzLT5sb2NhbGUtPnByb3ZpZGVyKTsKKwkJaWYg KHNzcy0+bG9jYWxlLT5wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCQkJZWxvZyhOT1RJ Q0UsICJ2YXJzdHJfYWJicmV2X2NvbnZlcnQgc3NzLT5sb2NhbGUtPmluZm8uaWN1LmxvY2FsZSAl cyIsIHNzcy0+bG9jYWxlLT5pbmZvLmljdS5sb2NhbGUgPyBzc3MtPmxvY2FsZS0+aW5mby5pY3Uu bG9jYWxlIDogIihudWxsKSIpOworCX0KKwogCS8qCiAJICogSWYgd2UncmUgdXNpbmcgdGhlIEMg Y29sbGF0aW9uLCB1c2UgbWVtY3B5KCksIHJhdGhlciB0aGFuIHN0cnhmcm0oKSwgdG8KIAkgKiBh YmJyZXZpYXRlIGtleXMuICBUaGUgZnVsbCBjb21wYXJhdG9yIGZvciB0aGUgQyBsb2NhbGUgaXMg YWx3YXlzCg== --=_4fb89d2f2e3f09c841c4b3d9c63d6304 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=diff_fix_pg_regress_create_database.patch Content-Disposition: attachment; filename=diff_fix_pg_regress_create_database.patch; size=1571 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVn cmVzcy9wZ19yZWdyZXNzLmMKaW5kZXggZGRhMDc2ODQ3YTM4YTc0YTc2NWNhMTI4MzIyNjgxNWU5 ZDEwYWRhMS4uNGFhNDJjNmIxYzdmMmYyYzM2YWY1MzliYWZjYTRkNjRjZGI3ZGIzYSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzLmMKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9wZ19yZWdyZXNzLmMKQEAgLTE4OTksMTQgKzE4OTksMjUgQEAgY3JlYXRlX2RhdGFiYXNlKGNv bnN0IGNoYXIgKmRibmFtZSkKIAkvKgogCSAqIFdlIHVzZSB0ZW1wbGF0ZTAgc28gdGhhdCBhbnkg aW5zdGFsbGF0aW9uLWxvY2FsIGNydWZ0IGluIHRlbXBsYXRlMSB3aWxsCiAJICogbm90IG1lc3Mg dXAgdGhlIHRlc3RzLgorCSAqCisJICogRXhwbGljaXRseSBzZXQgdGhlIGxvY2FsZSBwcm92aWRl ciBsaWJjIGZvciB0aGUgb3B0aW9uIC0tbm8tbG9jYWxlLgorCSAqIE90aGVyd2lzZSBkdXJpbmcg aW5zdGFsbGNoZWNrIHRoZSBuZXcgZGF0YWJhc2UgbWF5IHVzZSB0aGUgSUNVIGxvY2FsZQorCSAq IHByb3ZpZGVyIHdpdGggdGhlIGN1c3RvbSBJQ1UgbG9jYWxlIGZyb20gdGVtcGxhdGUwLgogCSAq LwogCWhlYWRlcihfKCJjcmVhdGluZyBkYXRhYmFzZSBcIiVzXCIiKSwgZGJuYW1lKTsKIAlpZiAo ZW5jb2RpbmcpCisKKwkJLyoKKwkJICogRXhwbGljaXRseSBzZXQgdGhlIGxvY2FsZSBwcm92aWRl ciBsaWJjIGZvciB0aGUgbWFudWFsbHkgY2hvc2VuCisJCSAqIGVuY29kaW5nLiBPdGhlcndpc2Ug ZHVyaW5nIGluc3RhbGxjaGVjayB0aGUgbmV3IGRhdGFiYXNlIG1heSB1c2UKKwkJICogdGhlIElD VSBsb2NhbGUgcHJvdmlkZXIgKGZyb20gdGVtcGxhdGUwKSB3aGljaCBkb2VzIG5vdCBzdXBwb3J0 IGFsbAorCQkgKiBlbmNvZGluZ3MuCisJCSAqLwogCQlwc3FsX2FkZF9jb21tYW5kKGJ1ZiwgIkNS RUFURSBEQVRBQkFTRSBcIiVzXCIgVEVNUExBVEU9dGVtcGxhdGUwIEVOQ09ESU5HPSclcyclcyIs IGRibmFtZSwgZW5jb2RpbmcsCi0JCQkJCQkgKG5vbG9jYWxlKSA/ICIgTENfQ09MTEFURT0nQycg TENfQ1RZUEU9J0MnIiA6ICIiKTsKKwkJCQkJCSAobm9sb2NhbGUpID8gIiBMQ19DT0xMQVRFPSdD JyBMQ19DVFlQRT0nQycgTE9DQUxFX1BST1ZJREVSPSdsaWJjJyIgOiAiIExPQ0FMRV9QUk9WSURF Uj0nbGliYyciKTsKIAllbHNlCiAJCXBzcWxfYWRkX2NvbW1hbmQoYnVmLCAiQ1JFQVRFIERBVEFC QVNFIFwiJXNcIiBURU1QTEFURT10ZW1wbGF0ZTAlcyIsIGRibmFtZSwKLQkJCQkJCSAobm9sb2Nh bGUpID8gIiBMQ19DT0xMQVRFPSdDJyBMQ19DVFlQRT0nQyciIDogIiIpOworCQkJCQkJIChub2xv Y2FsZSkgPyAiIExDX0NPTExBVEU9J0MnIExDX0NUWVBFPSdDJyBMT0NBTEVfUFJPVklERVI9J2xp YmMnIiA6ICIiKTsKIAlwc3FsX2FkZF9jb21tYW5kKGJ1ZiwKIAkJCQkJICJBTFRFUiBEQVRBQkFT RSBcIiVzXCIgU0VUIGxjX21lc3NhZ2VzIFRPICdDJzsiCiAJCQkJCSAiQUxURVIgREFUQUJBU0Ug XCIlc1wiIFNFVCBsY19tb25ldGFyeSBUTyAnQyc7Igo= --=_4fb89d2f2e3f09c841c4b3d9c63d6304--