Re: ICU for global collation

From: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
To: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ICU for global collation
Date: 2019-09-11 05:24:37
Message-ID: 9B2E4EF4-22FD-4E6C-B8E6-A0A46153AA0E@yandex-team.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> 21 авг. 2019 г., в 12:23, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> написал(а):
>
> On 2019-08-21 08:56, Andrey Borodin wrote:
>> postgres=# create database a template template0 collation_provider icu lc_collate 'en_US.utf8';
>> CREATE DATABASE
>> postgres=# \c a
>> 2019-08-21 11:43:40.379 +05 [41509] FATAL: collations with different collate and ctype values are not supported by ICU
>> FATAL: collations with different collate and ctype values are not supported by ICU
>
> Try
>
> create database a template template0 collation_provider icu locale
> 'en_US.utf8';
>
> which sets both lc_collate and lc_ctype. But 'en_US.utf8' is not a
> valid ICU locale name. Perhaps use 'en' or 'en-US'.
>
> I'm making a note that we should prevent creating a database with a
> faulty locale configuration in the first place instead of failing when
> we're connecting.

Yes, the problem is input with lc_collate is accepted
postgres=# create database a template template0 collation_provider icu lc_collate 'en_US.utf8';
CREATE DATABASE
postgres=# \c a
2019-09-11 10:01:00.373 +05 [56878] FATAL: collations with different collate and ctype values are not supported by ICU
FATAL: collations with different collate and ctype values are not supported by ICU
Previous connection kept
postgres=# create database b template template0 collation_provider icu locale 'en_US.utf8';
CREATE DATABASE
postgres=# \c b
You are now connected to database "b" as user "x4mmm".

I get same output with 'en' or 'en-US'.

Also, cluster initialized --with-icu started on binaries without icu just fine.
And only after some time, I've got that messages "ERROR: ICU is not supported in this build".
Is it expected behavior? Maybe we should refuse to start without icu?

Best regards, Andrey Borodin.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro Horiguchi 2019-09-11 05:32:56 Re: SIGQUIT on archiver child processes maybe not such a hot idea?
Previous Message Michael Paquier 2019-09-11 04:58:54 Re: [patch]socket_timeout in interfaces/libpq