Re: Change initdb default to the builtin collation provider

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Jeff Davis <pgsql(at)j-davis(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Change initdb default to the builtin collation provider
Date: 2025-10-17 15:23:22
Message-ID: cbf88173-fce9-49f1-a9ee-29f8e982b98a@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 11.10.25 02:48, Jeff Davis wrote:
> The builtin provider uses code point order, i.e. memcmp(), so the
> final result display order is less human-friendly. For instance, 'Z'
> comes before 'a'.
>
> That problem is annoying, but*much* easier to fix than the other
> factors. The user might add a COLLATE clause to the final ORDER BY, or
> perform the sort in the application layer or presentation layer.

I remain violently opposed to this idea. I don't understand how it
could be acceptable to just not provide a good display order by default
and have everyone rewrite their queries.

> ICU is better than libc in a lot of ways:
>
> * Better performance
> * Platform-independent
> * Easier to manage it as a separate library
>
> But fundamentally, I don't think it's a great default, because it
> favors final result display order at the risk of primary key
> inconsistencies.

I don't understand. We have a versioning system for ICU collations?
Does it not work?

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2025-10-17 16:15:47 Re: make tsearch use the database default locale
Previous Message Peter Eisentraut 2025-10-17 15:04:42 Re: new environment variable INITDB_LOCALE_PROVIDER