Re: Order changes in PG16 since ICU introduction

Joe Conway <mail@joeconway.com>

From: Joe Conway <mail@joeconway.com>
To: Jeff Davis <pgsql@j-davis.com>, Peter Eisentraut <peter@eisentraut.org>, Daniel Verite <daniel@manitou-mail.org>
Cc: Andrew Gierth <andrew@tao11.riddles.org.uk>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2023-06-08T21:59:43Z
Lists: pgsql-hackers
On 6/8/23 17:15, Jeff Davis wrote:
> On Wed, 2023-06-07 at 20:52 -0400, Joe Conway wrote:
>> If the provider has no such thing, throw an error.
> 
> Just to be clear, that implies that users (and buildfarm members) with
> LANG=C.UTF-8 in their environment would not be able to run a plain
> "initdb -D data"; they'd get an error. It's hard for me to estimate how
> many users might be inconvenienced by that, but it sounds like a risk.

Well, but only if their libc provider does not have C.UTF-8, correct?

I see
----------------
Linux Mint 21.1:	/usr/lib/locale/C.utf8
RHEL 8:			/usr/lib/locale/C.utf8
RHEL 9:			/usr/lib/locale/C.utf8
AL2:			/usr/lib/locale/C.utf8

However I do not see it on RHEL 7 :-(

> Perhaps for this specific case, and only in initdb, we change
> C.anything and POSIX.anything to the builtin provider?

Might be best, with some kind of warning perhaps?

> CREATE DATABASE and CREATE COLLATION could still reject such
> locales.

Seems to make sense.

-- 
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com




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.