Re: pgsql: Allow tailoring of ICU locales with custom rules

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: pgsql: Allow tailoring of ICU locales with custom rules
Дата
Msg-id afdffbd9-98ee-ea03-9640-301463317bc1@eisentraut.org
обсуждение исходный текст
Ответ на Re: pgsql: Allow tailoring of ICU locales with custom rules  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: pgsql: Allow tailoring of ICU locales with custom rules  (Jeff Davis <pgsql@j-davis.com>)
Список pgsql-hackers
On 24.07.23 04:46, Amit Kapila wrote:
> On Fri, Mar 10, 2023 at 3:24 PM Peter Eisentraut
> <peter.eisentraut@enterprisedb.com> wrote:
>>
>> On 08.03.23 21:57, Jeff Davis wrote:
>>
>>> * It appears rules IS NULL behaves differently from rules=''. Is that
>>> desired? For instance:
>>>     create collation c1(provider=icu,
>>>       locale='und-u-ka-shifted-ks-level1',
>>>       deterministic=false);
>>>     create collation c2(provider=icu,
>>>       locale='und-u-ka-shifted-ks-level1',
>>>       rules='',
>>>       deterministic=false);
>>>     select 'a b' collate c1 = 'ab' collate c1; -- true
>>>     select 'a b' collate c2 = 'ab' collate c2; -- false
>>
>> I'm puzzled by this.  The general behavior is, extract the rules of the
>> original locale, append the custom rules, use that.  If the custom rules
>> are the empty string, that should match using the original rules
>> untouched.  Needs further investigation.
>>
>>> * Can you document the interaction between locale keywords
>>> ("@colStrength=primary") and a rule like '[strength 2]'?
>>
>> I'll look into that.
> 
> This thread is listed on PostgreSQL 16 Open Items list. This is a
> gentle reminder to see if there is a plan to move forward with respect
> to open points.

I have investigated this.  My assessment is that how PostgreSQL 
interfaces with ICU is correct.  Whether what ICU does is correct might 
be debatable.  I have filed a bug with ICU about this: 
https://unicode-org.atlassian.net/browse/ICU-22456 , but there is no 
response yet.

You can work around this by including the desired attributes in the 
rules string, for example

     create collation c3 (provider=icu,
       locale='und-u-ka-shifted-ks-level1',
       rules='[alternate shifted][strength 1]',
       deterministic=false);

So I don't think there is anything we need to do here for PostgreSQL 16.




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Masahiro Ikeda
Дата:
Сообщение: Re: Fix pg_stat_reset_single_table_counters function
Следующее
От: Masahiro Ikeda
Дата:
Сообщение: Re: Support to define custom wait events for extensions