On 2024-03-11 Mo 22:50, Thomas Munro wrote:
> On Tue, Mar 12, 2024 at 2:56 PM Andrew Dunstan <andrew@dunslane.net> wrote:
>> On 2024-03-11 Mo 04:21, Oleg Tselebrovskiy wrote:
>>> Greetings, everyone!
>>>
>>> While running "installchecks" on databases with UTF-8 encoding the test
>>> citext_utf8 fails because of Turkish dotted I like this:
>>>
>>> SELECT 'i'::citext = 'İ'::citext AS t;
>>> t
>>> ---
>>> - t
>>> + f
>>> (1 row)
>>>
>>> I tried to replicate the test's results by hand and with any collation
>>> that I tried (including --locale="Turkish") this test failed
>>>
>>> Also an interesing result of my tesing. If you initialize you DB
>>> with -E utf-8 --locale="Turkish" and then run select LOWER('İ');
>>> the output will be this:
>>> lower
>>> -------
>>> İ
>>> (1 row)
>>>
>>> Which I find strange since lower() uses collation that was passed
>>> (default in this case but still)
>> Wouldn't we be better off finding a Windows fix for this, instead of
>> sweeping it under the rug?
> Given the sorry state of our Windows locale support, I've started
> wondering about deleting it and telling users to adopt our nascent
> built-in support or ICU[1].
>
> This other thread [2] says the sorting is intransitive so I don't
> think it really meets our needs anyway.
>
> [1]
https://www.postgresql.org/message-id/flat/CA%2BhUKGJhV__g_TJ0jVqPbnTuqT%2B%2BM6KFv2wj%2B9AV-cABNCXN6Q%40mail.gmail.com#bc35c0b88962ff8c24c27aecc1bca72e
> [2] https://www.postgresql.org/message-id/flat/1407a2c0-062b-4e4c-b728-438fdff5cb07%40manitou-mail.org
Makes more sense than just hacking the tests to avoid running them on
Windows. (I also didn't much like doing it by parsing the version
string, although I know there's at least one precedent for doing that.)
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com