Re: Order changes in PG16 since ICU introduction

Jonathan S. Katz <jkatz@postgresql.org>

From: "Jonathan S. Katz" <jkatz@postgresql.org>
To: Jeff Davis <pgsql@j-davis.com>, Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Regina Obe <lr@pcorp.us>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Sandro Santilli <strk@kbt.io>, pgsql-hackers@lists.postgresql.org
Date: 2023-05-18T17:58:48Z
Lists: pgsql-hackers
On 5/18/23 1:55 PM, Jeff Davis wrote:
> On Wed, 2023-05-17 at 19:59 -0400, Jonathan S. Katz wrote:
>> I did a quicker read through this time. LGTM overall. I like what you
>> did with the explanations around sensitivity (now it makes sense).
> 
> Committed, thank you.

\o/

> There are a few things I don't understand that would be good to
> document better:
> 
> * Rules. I still don't quite understand the use case: are these for
> people inventing new languages? What is a plausible use case that isn't
> covered by the existing locales and collation settings? Do rules make
> sense for a database default collation? Are they for language experts
> only or might an ordinary developer benefit from using them?

 From my read of them, as an app developer I'd be very unlikely to use 
this. Maybe there is something with building out some collation rules 
vis-a-vis an extension, but I have trouble imagining the use-case. I may 
also not be the target audience for this feature.

> * The collation types "phonebk", "emoji", etc.: are these variants of
> particular locales, or do they make sense in multiple locales? I don't
> know where they fit in or how to document them.

I remember I had a exploratory use case for "phonebk" but I couldn't 
figure out how to get it to work. AIUI from random searching, the idea 
is that it provides the "phonebook" rules for ordering "names" in a 
particular locale, but I couldn't get it to work.

> * I don't understand what "kc" means if "ks" is not set to "level1".

Me neither, but I haven't stared at this as hard as others.

Thanks,

Jonathan

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Introduce "builtin" collation provider.

  2. ICU: do not convert locale 'C' to 'en-US-u-va-posix'.

  3. initdb: change default --locale-provider back to libc.

  4. CREATE DATABASE: make LOCALE apply to all collation providers.

  5. Remove read-only server settings lc_collate and lc_ctype

  6. ICU: use uloc_getDefault() for initdb.

  7. Doc fixes for commit 1e16af8ab5.

  8. Doc: fix some rendering problems in the PDF docs build.

  9. Doc improvements for language tags and custom ICU collations.

  10. ICU: check for U_STRING_NOT_TERMINATED_WARNING.

  11. Reduce icu_validation_level default to WARNING.

  12. Revert "ICU: do not convert locale 'C' to 'en-US-u-va-posix'."

  13. Fix initdb --no-locale.

  14. Avoid character classification in regex escape parsing.