Re: Fix order of checking ICU options in initdb and create database

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: Marina Polyakova <m(dot)polyakova(at)postgrespro(dot)ru>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Fix order of checking ICU options in initdb and create database
Date: 2022-11-17 06:58:03
Message-ID: 205d3e3a-f726-be6b-c3bb-18333f432504@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 29.10.22 13:33, Marina Polyakova wrote:
> 2. initdb/create database report problems with the ICU locale/encoding
> although they may already report that ICU is not supported in this build:
>
> 2.1.
>
> $ initdb --locale-provider icu hoge
> ...
> initdb: error: ICU locale must be specified
>
> $ initdb --locale-provider icu --icu-locale en-US hoge
> ...
> initdb: error: ICU is not supported in this build
>
> $ createdb --locale-provider icu hoge
> createdb: error: database creation failed: ERROR:  ICU locale must be
> specified
>
> $ createdb --locale-provider icu --icu-locale en-US hoge
> createdb: error: database creation failed: ERROR:  ICU is not supported
> in this build

I'm not in favor of changing this. The existing code intentionally
tries to centralize the "ICU is not supported in this build" knowledge
in few places. Your patch tries to make this check early, but in the
process adds more places where ICU support needs to be checked
explicitly. This increases the code size and also creates a future
burden to maintain that level of checking. I think building without ICU
should be considered a marginal configuration at this point, so we don't
need to go out of our way to create a perfect user experience for this
configuration, as long as we check somewhere in the end.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Geier 2022-11-17 07:01:27 Re: Assertion failure with barriers in parallel hash join
Previous Message Peter Eisentraut 2022-11-17 06:54:18 Re: Fix order of checking ICU options in initdb and create database