Re: Fix database creation during installchecks for ICU cluster

From: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
To: Marina Polyakova <m(dot)polyakova(at)postgrespro(dot)ru>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Fix database creation during installchecks for ICU cluster
Date: 2022-11-29 14:54:33
Message-ID: e949472f-7eea-62d1-a393-db78377fd66e@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Thanks for the patch!

On 10/29/22 12:54, Marina Polyakova wrote:
>
> 1) The ECPG tests fail because they use the SQL_ASCII encoding [2],
> the database template0 uses the ICU locale provider and SQL_ASCII is
> not supported by ICU:
>
> $ make -C src/interfaces/ecpg/ installcheck
> ...
> ============== creating database "ecpg1_regression" ==============
> ERROR:  encoding "SQL_ASCII" is not supported with ICU provider
> ERROR:  database "ecpg1_regression" does not exist
> command failed: "/home/marina/postgresql/master/my/inst/bin/psql" -X
> -c "CREATE DATABASE \"ecpg1_regression\" TEMPLATE=template0
> ENCODING='SQL_ASCII'" -c "ALTER DATABASE \"ecpg1_regression\" SET
> lc_messages TO 'C';ALTER DATABASE \"ecpg1_regression\" SET lc_monetary
> TO 'C';ALTER DATABASE \"ecpg1_regression\" SET lc_numeric TO 'C';ALTER
> DATABASE \"ecpg1_regression\" SET lc_time TO 'C';ALTER DATABASE
> \"ecpg1_regression\" SET bytea_output TO 'hex';ALTER DATABASE
> \"ecpg1_regression\" SET timezone_abbreviations TO 'Default';" "postgres"
>

I can confirm that same error happens on my end and your patch fixes the
issue. But, do ECPG tests really require SQL_ASCII encoding? I removed
ECPG tests' encoding line [1], rebuilt it and 'make -C
src/interfaces/ecpg/ installcheck' passed without applying your patch.

>
> 2) The option --no-locale in pg_regress is described as "use C locale"
> [3]. But in this case the created databases actually use the ICU
> locale provider with the ICU cluster locale from template0 (see
> diff_check_backend_used_provider.txt):
>
> $ make NO_LOCALE=1 installcheck

This works on my end without applying your patch. Commands I used are:

$ ./configure --with-icu --prefix=$PWD/build_dir
$ make && make install && export PATH=$PWD/build_dir/bin:$PATH
$ initdb --locale-provider icu --icu-locale en-US -D data && pg_ctl -D
data -l logfile start
$ make NO_LOCALE=1 installcheck

[1]
https://github.com/postgres/postgres/blob/ce20f8b9f4354b46b40fd6ebf7ce5c37d08747e0/src/interfaces/ecpg/test/Makefile#L18

Regards,
Nazir Bilal Yavuz

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jelte Fennema 2022-11-29 14:57:08 Re: Support load balancing in libpq
Previous Message Bruce Momjian 2022-11-29 14:46:05 Re: Add 64-bit XIDs into PostgreSQL 15