Re: ICU for global collation
От | Marina Polyakova |
---|---|
Тема | Re: ICU for global collation |
Дата | |
Msg-id | 2322791a368e9ad066edd648790b5e91@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: ICU for global collation (Kyotaro Horiguchi <horikyota.ntt@gmail.com>) |
Ответы |
Re: ICU for global collation
Re: ICU for global collation |
Список | pgsql-hackers |
On 2022-09-15 09:52, Kyotaro Horiguchi wrote: > If I executed initdb as follows, I would be told to specify > --icu-locale option. > >> $ initdb --encoding sql-ascii --locale-provider icu hoge >> ... >> initdb: error: ICU locale must be specified > > However, when I reran the command, it complains about incompatible > encoding this time. I think it's more user-friendly to check for the > encoding compatibility before the check for missing --icu-locale > option. > > regards. I agree with you. Here's another version of the patch. The locale/encoding checks and reports in initdb have been reordered, because now the encoding is set first and only then the ICU locale is checked. P.S. While working on the patch, I discovered that UTF8 encoding is always used for the ICU provider in initdb unless it is explicitly specified by the user: if (!encoding && locale_provider == COLLPROVIDER_ICU) encodingid = PG_UTF8; IMO this creates additional errors for locales with other encodings: $ initdb --locale de_DE.iso885915@euro --locale-provider icu --icu-locale de-DE ... initdb: error: encoding mismatch initdb: detail: The encoding you selected (UTF8) and the encoding that the selected locale uses (LATIN9) do not match. This would lead to misbehavior in various character string processing functions. initdb: hint: Rerun initdb and either do not specify an encoding explicitly, or choose a matching combination. And ICU supports many encodings, see the contents of pg_enc2icu_tbl in encnames.c... -- Marina Polyakova Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Вложения
В списке pgsql-hackers по дате отправления: