Re: Order changes in PG16 since ICU introduction
| От | Daniel Verite |
|---|---|
| Тема | Re: Order changes in PG16 since ICU introduction |
| Дата | |
| Msg-id | 9b8974ba-3b8b-47b4-9fbf-8c309049ccbd@manitou-mail.org обсуждение исходный текст |
| Ответ на | Re: Order changes in PG16 since ICU introduction (Jeff Davis <pgsql@j-davis.com>) |
| Ответы |
Re: Order changes in PG16 since ICU introduction
|
| Список | pgsql-hackers |
Jeff Davis wrote:
> I implemented a compromise where initdb will
> change C.UTF-8 to the built-in provider
This handling of C.UTF-8 would be felt by users as simply broken.
With the v10 patches:
$ initdb --locale=C.UTF-8
initdb: using locale provider "builtin" for ICU locale "C.UTF-8"
The database cluster will be initialized with this locale configuration:
default collation provider: builtin
default collation locale: C
LC_COLLATE: C.UTF-8
LC_CTYPE: C.UTF-8
This setup is not what the user has asked for and leads to that kind of
wrong results:
$ psql -c "select upper('é')"
?column?
----------
é
whereas in v15 we would get the correct result 'É'.
Then once inside that cluster, trying to create a database:
postgres=# create database test locale='C.UTF-8';
ERROR: locale provider "builtin" does not support locale "C.UTF-8"
HINT: The built-in locale provider only supports the "C" and "POSIX"
locales.
That hardly makes sense considering that initdb stated the opposite,
that the "built-in provider" was adequate for C.UTF-8
In general about the evolution of the patchset, your interpretation
of "defaulting to ICU" seems to be "avoid libc at any cost", which IMV
is unreasonably user-hostile.
Best regards,
--
Daniel Vérité
https://postgresql.verite.pro/
Twitter: @DanielVerite
В списке pgsql-hackers по дате отправления: