On 17.06.25 17:37, Vik Fearing wrote:
For <fold> (which includes LOWER() and UPPER()), the text says in Section 6.35 GR 7.e:


If the character set of <character factor> is UTF8, UTF16, or UTF32, then FR is replaced by
     Case:
        i) If the <search condition> S IS NORMALIZED evaluates to True, then NORMALIZE (FR)
         ii) Otherwise, FR.


Here, FR is the result of the function and S is its argument.


It does not appear to me that our LOWER and UPPER functions obey this rule, so there is a valid argument that we should continue to ignore it. Or, we can say that we have at least one of three compliant.

The SQL standard also says in a few other places that normalization should be applied, and we do none of those, so this is probably not a reason to change CASEFOLD at this point.



Reply via email to