On Fri, 2023-06-16 at 18:06 -0400, Tom Lane wrote:
> You do not get to define that.  The reason we have buildfarm members
> running tests this way is exactly to flush out tests that are unduly
> collation-sensitive.  They will break in the field too.

It looks like the actual problem is that, when pg_regress creates the
database in --no-locale mode, it passes LC_COLLATE='C' and
LC_CTYPE='C', instead of just LOCALE='C'.

Before my commit, the two were equivalent so it didn't matter, but
afterwards it created an inconsistency that left daticulocale as cs-CZ.

Patch attached.

Regards,
        Jeff Davis

From 09cdcc04fe79ca9df80d1f499701bf34902b703f Mon Sep 17 00:00:00 2001
From: Jeff Davis <[email protected]>
Date: Fri, 16 Jun 2023 16:46:41 -0700
Subject: [PATCH v1] pg_regress: for --no-locale, use LOCALE='C'.

Instead of specifying LC_COLLATE='C' and LC_CTYPE='C', specify
LOCALE='C' which will also affect ICU. This makes pg_regress
consistent with recent changes to initdb in commit a14e75eb0b6.

Fixes buildfarm failure.

Discussion: https://postgr.es/m/[email protected]
---
 src/test/regress/pg_regress.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index a546fc3d34..60d34a40b2 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -1972,10 +1972,10 @@ create_database(const char *dbname)
 	 */
 	if (encoding)
 		psql_add_command(buf, "CREATE DATABASE \"%s\" TEMPLATE=template0 ENCODING='%s'%s", dbname, encoding,
-						 (nolocale) ? " LC_COLLATE='C' LC_CTYPE='C'" : "");
+						 (nolocale) ? " LOCALE='C'" : "");
 	else
 		psql_add_command(buf, "CREATE DATABASE \"%s\" TEMPLATE=template0%s", dbname,
-						 (nolocale) ? " LC_COLLATE='C' LC_CTYPE='C'" : "");
+						 (nolocale) ? " LOCALE='C'" : "");
 	psql_add_command(buf,
 					 "ALTER DATABASE \"%s\" SET lc_messages TO 'C';"
 					 "ALTER DATABASE \"%s\" SET lc_monetary TO 'C';"
-- 
2.34.1

Reply via email to