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

From: Julien Rouhaud <rjuju123(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Peter Eisentraut <peter(at)eisentraut(dot)org>, pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Add option to use ICU as global locale provider
Date: 2022-03-18 03:12:44
Message-ID: 20220318031244.tu3wwlyxxabzq3iu@jrouhaud
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Hi,

On Fri, Mar 18, 2022 at 11:01:11AM +0900, Michael Paquier wrote:
>
> FYI, prion is complaining here:
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=prion&dt=2022-03-18%2001%3A43%3A13
>
> Some details:
> # Failed test 'fails for invalid ICU locale: matches'
> # at t/001_initdb.pl line 107.
> # '2022-03-18 01:54:58.563 UTC [504] FATAL: could
> # not open collator for locale "@colNumeric=lower":
> # U_ILLEGAL_ARGUMENT_ERROR

That's very strange, apparently initdb doesn't detect any problem when checking
ucol_open() for initial checks, since it's expecting:

# doesn't match '(?^:initdb: error: could not open collator for locale)'

but then postgres in single-backend mode does detect the problem, with the
exact same check, so it's not like --icu-locale=(at)colNumeric=lower wasn't
correctly interpreted. Unfortunately we don't have the full initdb output, so
we can't check what setup_locale_encoding reported. The only difference is
that in initdb's setlocale(), the result of ucol_open is discarded, maybe the
compiler is optimizing it away for some reason, even though it seems really
unlikely.

That being said, we could save the result and explicitly close the collator.
That wouldn't make much difference in initdb (but may be a bit cleaner), but I
see that there's a similar coding in createdb(), which seems like it could leak
some memory according to ucol_close man page.

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Thomas Munro 2022-03-18 05:15:47 Re: pgsql: Add option to use ICU as global locale provider
Previous Message Michael Paquier 2022-03-18 02:01:11 Re: pgsql: Add option to use ICU as global locale provider

Browse pgsql-hackers by date

  From Date Subject
Next Message Mark Dilger 2022-03-18 03:21:56 New Object Access Type hooks
Previous Message Tom Lane 2022-03-18 02:29:45 Re: XID formatting and SLRU refactorings