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
|
Список | 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 по дате отправления: