Re: Fix database creation during installchecks for ICU cluster

From: vignesh C <vignesh21(at)gmail(dot)com>
To: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
Cc: 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: 2023-01-31 17:51:19
Message-ID: CALDaNm23gCULuEH4wFgpYaAKzcceK8_Kmswki=seOkMXx3RcJA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, 17 Jan 2023 at 17:17, vignesh C <vignesh21(at)gmail(dot)com> wrote:
>
> On Tue, 29 Nov 2022 at 20:24, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com> wrote:
> >
> > 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
>
> Hi Marina Polyakova,
>
> Since it is working without your patch, Is this patch required for any
> other scenarios?

There has been no updates on this thread for some time, so this has
been switched as Returned with Feedback. Feel free to open it in the
next commitfest if you plan to continue on this.

Regards,
Vignesh

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dagfinn Ilmari Mannsåker 2023-01-31 18:07:15 Re: Clarify deleting comments and security labels in synopsis
Previous Message vignesh C 2023-01-31 17:50:36 Re: vacuumlo: add test to vacuumlo for test coverage