Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ugtpQ-008PQ9-7V for pgsql-bugs@arkaria.postgresql.org; Tue, 29 Jul 2025 23:33:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ugtpO-005KkG-Q1 for pgsql-bugs@arkaria.postgresql.org; Tue, 29 Jul 2025 23:33:51 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ugtpO-005Kk8-De for pgsql-bugs@lists.postgresql.org; Tue, 29 Jul 2025 23:33:50 +0000 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ugtpM-001SmZ-23 for pgsql-bugs@postgresql.org; Tue, 29 Jul 2025 23:33:49 +0000 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-b170c99aa49so4484417a12.1 for ; Tue, 29 Jul 2025 16:33:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1753832027; x=1754436827; darn=postgresql.org; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=Je+dTYlc6hVAEqnz1YJiT2kwtwh995s7qISWeMrkm7Q=; b=dFhvJ7/3T1naLZ4HCWx8VAbpYMBoEOZd6Zc4+eV0rKxSkQBSu8J71LwQgezjSohs4I kzSOS7Gha4IXkZn9p2fGOFNgrb3h8yilu/u0G9uDGMWtFixVo8GiWY1Nm6KHgx1xx16n IwjXDa3/Jom0WbJEUj29KLji5qhfYOnQI8ODE5Dlml3Qq+fFes8A8tE68f1vLgXcppIx fyVBXiML21tJJHV0zPHd9Lz+H6BtYjjN0lpisCD0YLh8TciEhSwX2scbeD4zDGkxVLZ/ INTVP9Etzt/dgH0jTFXe5hkr8bzRRkuujvyyztHds4aJwniMISAY/J/U0KJ0t5SuPA4Z wWzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753832027; x=1754436827; h=mime-version:user-agent:date:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Je+dTYlc6hVAEqnz1YJiT2kwtwh995s7qISWeMrkm7Q=; b=Crc+hJ32Ag3vmuAiKZtJjucwoNCytZzOXLJUESIiavTapChsxERXfCRi0nz0Z0KZkP 8Kze7pLSYIO+Bwxk/xwxN/jMZXBGj59MYwzOS2RUITub3VDXAEGglLpOUtxeyU5IQBx/ aGtOSrA4mqW75iZk/Mi0JY+DZHrFTVP6KoLKKgwH4ZN7SRj84FD92lLbSEo7alqeHq5H DEpufC5KmuCK6YzHRkUx4RxR58affdcwYK8sTUs+/NMsKhV87X6l+PHOmTD54FST/BkK 8NgTLs3VNUsAJGYIe2los9GpCr9KAe7Q9As1Shc+QJQ9KDnucXCVqvPF8wSSyuA1zsMm sMbg== X-Gm-Message-State: AOJu0YysdQUr2J77qdRkOhGta/4RsUw3STCu+u1hIbeKQu8ZDY3l5KEI qq8+SFrMLJk+qIfwvvxjOpmo+66JNyVMqtawz2+MsVESSiYMiQ9wtu5UrF9xYhDWiCicJUtrqMX RpS0= X-Gm-Gg: ASbGncsWOYTGP9ILe/mzfLCIXnyC0wzuQ0G7bZiMlk/WuuRdmiGh7kAMqS6vG97v9Hr 2oNZ/9oumfcz9KMkJdwXg+sx0Y51wtu+z/7mi7wFYG43oX105V+FA/BQr8XLa9t37vUj+S1rDNj t6iFjU+IEGGVtbHrM5VECzmRwniw+fzcQWvGaOXyaCRFKuiuI0QhCi9K9hfxb/HrlmRnJO6wsRV B2wi53zuWrCMXkWOoWuDlUJFBy/Ng8EvFjLzX2AQ2Y8GHLHaTfbXsM5gWf2KeIuUCYAnhXE1t31 oK9H0OWFcRLe4BtM5aa1Di+f1WvRUrpHo5tvAHe8NjUa4vQ50qErTwE7StaOFC9y9z2BF7PeRj+ hCy93NIGBjlKFZ/iET0g8LIWHpJFFc9YMzQ== X-Google-Smtp-Source: AGHT+IE2NP5my07LaRirn2fSAgt87y4zCfne8UDRgyRQVU7TAJt1aRuX+To7NXNtCpHHE27LLjhMug== X-Received: by 2002:a17:902:fc86:b0:240:3c64:8626 with SMTP id d9443c01a7336-24096a4f46cmr14765295ad.5.1753832027228; Tue, 29 Jul 2025 16:33:47 -0700 (PDT) Received: from [172.24.2.126] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-240469a8084sm43661405ad.79.2025.07.29.16.33.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 16:33:46 -0700 (PDT) Message-ID: <5038b33a6dc639009f4b3d43fa6ae0c5ba9e04f7.camel@j-davis.com> Subject: CREATE DATABASE copies datlocale even if datlocprovider differs From: Jeff Davis To: pgsql-bugs@postgresql.org Date: Tue, 29 Jul 2025 16:33:45 -0700 Content-Type: multipart/mixed; boundary="=-BkB/ZCA7N6Pz3BV8UX0S" User-Agent: Evolution 3.52.3-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-BkB/ZCA7N6Pz3BV8UX0S Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable initdb -D data --locale-provider=3Dbuiltin --builtin-locale=3D'C.UTF-8' CREATE DATABASE d2 TEMPLATE template0 LOCALE_PROVIDER 'icu'; WARNING: ICU locale "C.UTF-8" has unknown language "c" HINT: To disable ICU locale validation, set the parameter "icu_validation_level" to "disabled". CREATE DATABASE SELECT datlocale FROM pg_database WHERE datname=3D'd2'; datlocale=20 ----------- C.UTF-8 (1 row) It's only an issue if template0 is builtin and the new database is icu. libc doesn't use the datlocale field, and the builtin provider will reject ICU locale names. ICU is less strict for historical reasons. I think that should throw an error rather than trying to reinterpret datlocale for the new provider. Patch attached, intended to backport through 17. In theory that could break existing CREATE DATABASE commands, but given that it's such a narrow case I don't think it's a major problem. We could mitigate it by patching only 18+. Thoughts? Regards, Jeff Davis --=-BkB/ZCA7N6Pz3BV8UX0S Content-Disposition: attachment; filename*0=0001-Do-not-copy-datlocale-unless-datlocprovider-matches.patc; filename*1=h Content-Type: text/x-patch; name="0001-Do-not-copy-datlocale-unless-datlocprovider-matches.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3NjE3ZjE1NGI0YzEwZTE4MWVlZWI5NDlkNzczYjVmMWVlZTY3OTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI5IEp1bCAyMDI1IDE2OjExOjMyIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGNv cHkgZGF0bG9jYWxlIHVubGVzcyBkYXRsb2Nwcm92aWRlciBtYXRjaGVzLgoKRHVyaW5nIENSRUFU RSBEQVRBQkFTRSwgaWYgY2hhbmdpbmcgdGhlIGxvY2FsZSBwcm92aWRlciwgcmVxdWlyZSB0aGF0 CmEgbmV3IGxvY2FsZSBpcyBzcGVjaWZpZWQgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIHJlaW50ZXJw cmV0IHRoZSBvbGQKbG9jYWxlIHdpdGggdGhlIG5ldyBwcm92aWRlci4KLS0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k YmNvbW1hbmRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKaW5kZXggNTAy YTQ1MTYzYzguLjkyYTM5NmI4NDA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k YmNvbW1hbmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCkBAIC0x MDUyLDcgKzEwNTIsNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0 ZWRiU3RtdCAqc3RtdCkKIAkJZGJjdHlwZSA9IHNyY19jdHlwZTsKIAlpZiAoZGJsb2Nwcm92aWRl ciA9PSAnXDAnKQogCQlkYmxvY3Byb3ZpZGVyID0gc3JjX2xvY3Byb3ZpZGVyOwotCWlmIChkYmxv Y2FsZSA9PSBOVUxMKQorCWlmIChkYmxvY2FsZSA9PSBOVUxMICYmIGRibG9jcHJvdmlkZXIgPT0g c3JjX2xvY3Byb3ZpZGVyKQogCQlkYmxvY2FsZSA9IHNyY19sb2NhbGU7CiAJaWYgKGRiaWN1cnVs ZXMgPT0gTlVMTCkKIAkJZGJpY3VydWxlcyA9IHNyY19pY3VydWxlczsKLS0gCjIuNDMuMAoK --=-BkB/ZCA7N6Pz3BV8UX0S--