> 21 авг. 2019 г., в 12:23, Peter Eisentraut <peter.eisentr...@2ndquadrant.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.