Re: CREATE COLLATION without LOCALE throws error in v15

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: Kyle Spearrin <kspearrin(at)bitwarden(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: Justin Baur <jbaur(at)bitwarden(dot)com>, Vince Grassia <vgrassia(at)bitwarden(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>
Subject: Re: CREATE COLLATION without LOCALE throws error in v15
Date: 2022-12-06 23:57:19
Message-ID: 7b99b4a7fc5284008bae32b77a776d25b4a400bc.camel@j-davis.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Fri, 2022-12-02 at 14:14 -0500, Kyle Spearrin wrote:
> However, in Postgres 15 we see the following error:
>
> 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

--
Jeff Davis
PostgreSQL Contributor Team - AWS

Attachment Content-Type Size
v1-0001-Re-allow-creating-ICU-collation-if-LC_COLLATE-mat.patch text/x-patch 1.2 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2022-12-07 12:04:54 Re: CREATE COLLATION without LOCALE throws error in v15
Previous Message Tom Lane 2022-12-06 20:47:26 Re: Re[2]: PG 14.5 -- Impossible to restore dump due to interaction/order of views, functions, and generated columns