Specify locale provider for pg_regress --no-locale
authorAlexander Korotkov <akorotkov@postgresql.org>
Sat, 13 Sep 2025 17:38:52 +0000 (20:38 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Sat, 13 Sep 2025 17:39:09 +0000 (20:39 +0300)
pg_regress has a --no-locale option that forces the temporary database to
have C locale.  However, currently, locale C only exists in the 'builtin'
locale provider.  This makes 'pg_regress --no-locale' fail when the default
locale provider is not 'builtin'.  This commit makes 'pg_regress --no-locale'
specify both LOCALE='C' and LOCALE_PROVIDER='builtin'.

Discussion: https://postgr.es/m/b54921f95e23b4391b1613e9053a3d58%40postgrespro.ru
Author: Oleg Tselebrovskiy <o.tselebrovskiy@postgrespro.ru>
Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
src/test/regress/pg_regress.c

index 5d85dcc62f0a5713b1914badccd1b29f1ec113e9..61c035a39834a81dfb08e88a283f4eae8101a533 100644 (file)
@@ -1968,10 +1968,10 @@ create_database(const char *dbname)
     */
    if (encoding)
        psql_add_command(buf, "CREATE DATABASE \"%s\" TEMPLATE=template0 ENCODING='%s'%s", dbname, encoding,
-                        (nolocale) ? " LOCALE='C'" : "");
+                        (nolocale) ? " LOCALE='C' LOCALE_PROVIDER='builtin'" : "");
    else
        psql_add_command(buf, "CREATE DATABASE \"%s\" TEMPLATE=template0%s", dbname,
-                        (nolocale) ? " LOCALE='C'" : "");
+                        (nolocale) ? " LOCALE='C' LOCALE_PROVIDER='builtin'" : "");
    psql_add_command(buf,
                     "ALTER DATABASE \"%s\" SET lc_messages TO 'C';"
                     "ALTER DATABASE \"%s\" SET lc_monetary TO 'C';"