Re: Move defaults toward ICU in 16?

From: "Jonathan S(dot) Katz" <jkatz(at)postgresql(dot)org>
To: Robert Haas <robertmhaas(at)gmail(dot)com>, Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Move defaults toward ICU in 16?
Date: 2023-02-16 15:06:37
Message-ID: 30a936ed-0832-6e74-3e61-113e0fab5eb1@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2/16/23 4:35 AM, Robert Haas wrote:
> On Thu, Feb 16, 2023 at 1:01 AM Jeff Davis <pgsql(at)j-davis(dot)com> wrote:
>> It feels very wrong to me to explain that sort order is defined by the
>> operating system on which Postgres happens to run. Saying that it's
>> defined by ICU, which is part of the Unicode consotium, is much better.
>> It doesn't eliminate versioning issues, of course, but I think it's a
>> better explanation for users.
>
> The fact that we can't use ICU on Windows, though, weakens this
> argument a lot. In my experience, we have a lot of Windows users, and
> they're not any happier with the operating system collations than
> Linux users. Possibly less so.

This is one reason why we're discussing ICU as the "preferred default"
vs. "the default." While it may not completely eliminate platform
dependent behavior for collations, it takes a step forward.

And AIUI, it does sound like ICU is available on newer versions of
Windows[1].

> I feel like this is a very difficult kind of change to judge. If
> everyone else feels this is a win, we should go with it, and hopefully
> we'll end up better off. I do feel like there are things that could go
> wrong, though, between the imperfect documentation, the fact that a
> substantial chunk of our users won't be able to use it because they
> run Windows, and everybody having to adjust to the behavior change.

We should continue to improve our documentation. Personally, I found the
biggest challenge was understanding how to set ICU locales / rules,
particularly for nondeterministic collations as it was challenging to
find where these were listed. I was able to overcome this with the
examples in our docs + blogs, but I agree it's an area we can continue
to improve upon.

Thanks,

Jonathan

[1]
https://learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Drouvot, Bertrand 2023-02-16 15:09:45 Re: Change xl_hash_vacuum_one_page.ntuples from int to uint16
Previous Message Tom Lane 2023-02-16 14:38:18 Re: Dead code in ps_status.c