Re: pgsql: Add option to use ICU as global locale provider - Mailing list pgsql-hackers

From Julien Rouhaud
Subject Re: pgsql: Add option to use ICU as global locale provider
Date
Msg-id 20220318092749.363m4uv6rq24lctz@jrouhaud
Whole thread Raw
List pgsql-hackers
(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

pgsql-hackers by date:

Previous
From: Kyotaro Horiguchi
Date:
Subject: Re: Replication slot drop message is sent after pgstats shutdown.
Next
From: Dagfinn Ilmari Mannsåker
Date:
Subject: Re: Tab completion for SET TimeZone