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 1p2hob-00050C-2h for pgsql-bugs@arkaria.postgresql.org; Tue, 06 Dec 2022 23:57:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p2hoZ-0003nI-Li for pgsql-bugs@arkaria.postgresql.org; Tue, 06 Dec 2022 23:57:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p2hoZ-0003n9-Ad for pgsql-bugs@lists.postgresql.org; Tue, 06 Dec 2022 23:57:31 +0000 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p2hoS-00063z-7W for pgsql-bugs@lists.postgresql.org; Tue, 06 Dec 2022 23:57:30 +0000 Received: by mail-pj1-x1033.google.com with SMTP id cm20so16010079pjb.1 for ; Tue, 06 Dec 2022 15:57:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=57lagxYEtfT8KldXQHBo9Sinv52H/L3V3Suwz2CK2dM=; b=k0GijH6L+p3l5kKP5r7YHEM+uvKExgo6SntxQYHQ/Ll1cAlk1e0VeLmIJkWNExA4zW ZUjsmsl2eoLzOCYWvCJffXnyH5YdiIIQ2aQSy62QcNKF1zoFdomkCenMY2nfy83B/dK5 MJKIP+a3wPAqXNMwituzjFQdJeTKu2I3X0+LPEpe8oR7kLktwtc7i6JqonTujjDrEq8Q nD4D1Ss423CkWRjd7t/KXj7jXaG7W/CoR/4BR2gkQRPR7iigQeK8ObVxKyyhSr8ziGB9 HjXBxmFyK7zR20lB3GDCkJevMjhkTxq/eDAMffQcrIPcgZBZJvyuGfAfiAXYAsBXxit1 DPzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=57lagxYEtfT8KldXQHBo9Sinv52H/L3V3Suwz2CK2dM=; b=iz6KTkZIQPoUNJx6jPmMwhZCpBWwZA6mHDLWTXjOhOef0oPrZKl/QCzs4zBP/OE4Ak 5RkKShHxty7EYJfxBOJZsLQ+zRp2uF9VZOuSVW9Xn7qiMYgVEnfgk9tSnZgCcSeTLAcu S4lwwED1eNVaFW0QbUAyzLdroFvZ7XGyS5pffJVydw9s5/V+MPJWxsUf/5o2LszQJtHA 34zmJwygnmq2aWrA5DjcQdfOq0vn9oAdVgzo8U77rvZumc4X3hbtUwHFc7y2i5KJhELG Qw9OueTVGNb+XdP0/7veZf7X/rLgI5gMNujSg6Z5vHawJ8izFWKW7EpiqBE239GitrFk FZcg== X-Gm-Message-State: ANoB5plr0AkkB9UtFqp/4HMlhtbsL9B9vtoAPXWJR6l0ibWl7dQ+1EU+ nQrVwkSFrGbd4UPi/QozuFC+ww== X-Google-Smtp-Source: AA0mqf7eDbASj0b43Eu8Htc+aW2xaKkaKIeQfwCU1acesDkI5m7LlI//ORWQOSLSct/L61GdRovScg== X-Received: by 2002:a17:902:bc84:b0:17f:700a:2cd3 with SMTP id bb4-20020a170902bc8400b0017f700a2cd3mr74797185plb.36.1670371041553; Tue, 06 Dec 2022 15:57:21 -0800 (PST) Received: from [172.18.7.9] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id mz19-20020a17090b379300b0020a81cf4a9asm13282014pjb.14.2022.12.06.15.57.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 15:57:20 -0800 (PST) Message-ID: <7b99b4a7fc5284008bae32b77a776d25b4a400bc.camel@j-davis.com> Subject: Re: CREATE COLLATION without LOCALE throws error in v15 From: Jeff Davis To: Kyle Spearrin , pgsql-bugs@lists.postgresql.org Cc: Justin Baur , Vince Grassia , Peter Eisentraut Date: Tue, 06 Dec 2022 15:57:19 -0800 In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-3qHNIeGbjpGb3CFefFeO" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-3qHNIeGbjpGb3CFefFeO Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2022-12-02 at 14:14 -0500, Kyle Spearrin wrote: > However, in Postgres 15 we see the following error: >=20 > ERROR: parameter "locale" must be specified I agree that this is some kind of bug. The docs seem pretty clear[1]: "locale This is a shortcut for setting LC_COLLATE and LC_CTYPE at once. If you specify this, you cannot specify either of those parameters." The error appears to come from commit f2553d4306 ("Add option to use ICU as global locale provider"). My guess is that it was seen as clearer to write LOCALE, and that the error wasn't expected to cause anyone a problem. But, given that it's causing a problem for ORMs, we should fix it. Simple patch attached. I intend to commit and backpatch to 15 in the next day or so. Looking at the docs for CREATE COLLATION[1] and CREATE DATABASE[2], we could probably do more to make this area consistent. But that's for another discussion. [1] https://www.postgresql.org/docs/devel/sql-createcollation.html [2] https://www.postgresql.org/docs/devel/sql-createdatabase.html --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-3qHNIeGbjpGb3CFefFeO Content-Disposition: attachment; filename*0=v1-0001-Re-allow-creating-ICU-collation-if-LC_COLLATE-mat.pat; filename*1=ch Content-Type: text/x-patch; name="v1-0001-Re-allow-creating-ICU-collation-if-LC_COLLATE-mat.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkYjg4NTFhNGI2ZjM4ZDMyMjNhNzIyOWFiYzRkN2EwODczNzI1OGI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDYgRGVjIDIwMjIgMTU6MzY6NTQgLTA4MDAKU3ViamVjdDogW1BBVENIIHYxXSBSZS1hbGxv dyBjcmVhdGluZyBJQ1UgY29sbGF0aW9uIGlmIExDX0NPTExBVEUgbWF0Y2hlcwogTENfQ1RZUEUu CgpDb21taXQgZjI1NTNkNDMwNiBkaXNhbGxvd2VkIGNyZWF0aW5nIGFuIElDVSBjb2xsYXRpb24g aWYgTE9DQUxFIHdhcwpub3Qgc3BlY2lmaWVkLiBQcmV2aW91c2x5LCB0aGlzIHdhcyBhbGxvd2Vk IGFzIGxvbmcgYXMgTENfQ09MTEFURSBhbmQKTENfQ1RZUEUgbWF0Y2hlZC4KCkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FMRFFpY3Nfb0JFWWZPbnVfekg2eXc5V1Ixd2FQQ21jcnF4 UTgrMzloSzNPcD16MlVRQG1haWwuZ21haWwuY29tClJlcG9ydGVkLWJ5OiBLeWxlIFNwZWFycmlu IDxrc3BlYXJyaW5AYml0d2FyZGVuLmNvbT4KQmFja3BhdGNoLXRocm91Z2g6IDE1Ci0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29s bGF0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCmluZGV4 IDgxZTU0ZTBjZTYuLjRiMmYxZDJjMTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvbGxhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRz LmMKQEAgLTI0MCw2ICsyNDAsMTAgQEAgRGVmaW5lQ29sbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZfbm90X2UKIAkJfQogCQll bHNlIGlmIChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJeworCQkJaWYgKCFj b2xsaWN1bG9jYWxlICYmIGNvbGxjb2xsYXRlICYmIGNvbGxjdHlwZSAmJgorCQkJCXN0cmNtcChj b2xsY29sbGF0ZSwgY29sbGN0eXBlKSA9PSAwKQorCQkJCWNvbGxpY3Vsb2NhbGUgPSBjb2xsY29s bGF0ZTsKKwogCQkJaWYgKCFjb2xsaWN1bG9jYWxlKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAotLSAKMi4zNC4x Cgo= --=-3qHNIeGbjpGb3CFefFeO--