Re: pgsql: Use ICU by default at initdb time.

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-03-10T14:38:17Z
Lists: pgsql-hackers
On Fri, 2023-03-10 at 10:59 +0100, Peter Eisentraut wrote:
> I think originally the locale forced the encoding.  With ICU, we have
> a 
> choice.  We could either stick to the encoding suggested by the OS,
> or 
> pick our own.

We still need LC_COLLATE and LC_CTYPE to match the database encoding
though. If we get those from the environment (which are connected to an
encoding), then I think we need to get the encoding from the
environment, too, right?

> Arguably, if we are going to nudge toward ICU, maybe we should nudge 
> toward UTF-8 as well.

The OSes are already doing a pretty good job of that. Regardless, we
need to remove the dependence on LC_CTYPE and LC_COLLATE when the
provider is ICU first (we're close to that point but not quite there).

Regards,
	Jeff Davis




Commits

  1. initdb: derive encoding from locale for ICU; similar to libc.

  2. Use ICU by default at initdb time.