Re: Supporting non-deterministic collations with tailoring rules.

From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Supporting non-deterministic collations with tailoring rules.
Date: 2026-03-15 18:52:24
Message-ID: b8482282-6ea6-45a7-b12e-e06c046cfe6e@manitou-mail.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

[resent for the list]

Peter Eisentraut wrote:

> > To me, the most plausible fix on the Postgres side would be to pass
> > UCOL_DEFAULT instead of UCOL_DEFAULT_STRENGTH as in the attached,
> > which lets the user specify the strength in the rule, as the OP did in [1].
>
> With this change, I don't see that the bug reported in ICU-22456 is
> fixed. See attached my test case.
>
> What change of behavior are you expecting from your patch? Should there
> be test cases?

Indeed it does not fix the behavior reported in ICU-22456
(=collation properties being "reset" when adding rules)
It fixes the fact that specificying the strength in the rule itself
will be taken into account instead of the strength being
forced to tertiary.

PFA a new patch with a specific test case added.

With regards to reports on pgsql-bugs, it fixes #18771
and the second part of #19425.
It does not fix #19045, which looks the same as ICU-22456
It also does not fix the first part of #19425 (which looks the
same as #19045). We cannot fix that in Postgres AFAIU.
However adding the strength or other collation properties in
the rules can be used as a workaround against the ICU-22456
issue, provided the attached change is made.

Best regards,
--
Daniel Vérité
https://postgresql.verite.pro/

Attachment Content-Type Size
v2-rules-ucol-default-strength.diff text/x-patch 2.1 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Melanie Plageman 2026-03-15 19:10:54 Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
Previous Message Lakshmi N 2026-03-15 18:22:16 Re: Add missing CHECK_FOR_INTERRUPTS calls in dblink module