Thread: Re: pgsql: Add option to use ICU as global locale provider

Re: pgsql: Add option to use ICU as global locale provider

From
Julien Rouhaud
Date:
(moving to -hackers)

On Fri, Mar 18, 2022 at 03:40:51PM +0800, Julien Rouhaud wrote:
> On Fri, Mar 18, 2022 at 02:36:48PM +0800, Julien Rouhaud wrote:
> > On Fri, Mar 18, 2022 at 06:15:47PM +1300, Thomas Munro wrote:
> > >
> > > No idea what's happening here but one observation is that that animal
> > > is running an older distro that shipped with ICU 5.0.  Commit b8f9a2a6
> > > may hold a clue...
> >
> > Right.  I'm setting up a similar podman environment, hopefully more info soon.
> 
> And indeed b8f9a2a6 is the problem.  We would need some form of
> icu_set_collation_attributes() on the frontend side if we want to detect such a
> problem on older ICU version at the expected moment rather than when
> bootstrapping the info.  A similar check is also needed in createdb().

I'm attaching a patch that fixes both issues for me with ICU 50.  Note that
there's already a test that would have failed for CREATE DATABASE if initdb
tests didn't fail first, so no new test needed.

I ended up copy/pasting icu_set_collation_attributes() in initdb.c.  There
shouldn't be new attributes added in old ICU versions, and there are enough
differences to make it work in the frontend that it didn't seems worth to have
a single function.

Attachment