| 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?
| 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 |