Re: pgsql: createdb: Fix quoting of --encoding, --lc-ctype and --lc-collate

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-committers <pgsql-committers(at)lists(dot)postgresql(dot)org>
Subject: Re: pgsql: createdb: Fix quoting of --encoding, --lc-ctype and --lc-collate
Date: 2021-01-07 22:25:24
Message-ID: 231373.1610058324@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Michael Paquier <michael(at)paquier(dot)xyz> writes:
> On Thu, Feb 27, 2020 at 02:11:12PM +0900, Michael Paquier wrote:
>> The best thing I can think of is just to remove the test case for
>> --lc-ctype.

> So, thinking about nothing better, I have just removed this test.

I just tried to run check-world on an OpenBSD 6.8 installation,
and look what I got:

t/020_createdb.pl ......... 14/19
# Failed test 'createdb with incorrect --lc-collate stderr /(?^s:^createdb: error: database creation failed: ERROR: invalid locale name)/'
# at t/020_createdb.pl line 35.
# 'createdb: error: database creation failed: ERROR: new collation (foo'; SELECT '1) is incompatible with the collation of the template database (C)
# HINT: Use the same collation as in the template database, or use template0 as template.
# '
# doesn't match '(?^s:^createdb: error: database creation failed: ERROR: invalid locale name)'
# Looks like you failed 1 test of 19.
t/020_createdb.pl ......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/19 subtests

So on this machine, setlocale() is lax about LC_COLLATE values as
well as (presumably) LC_CTYPE. Question then becomes why we did
not notice for nearly a year. It looks like, of the not-very-many
OpenBSD machines in the buildfarm, the only one running the TAP
tests is curculio, and that's running OpenBSD 5.9 which is quite old.
Comparing their setlocale(3) man pages for different versions, it
looks like the current verbiage appeared in 6.3; older versions
have text similar to other BSDen. So it looks like they actually
ripped out a lot of locale functionality in 6.3.

It seems like (1) we need to drop the --lc-collate version of this
test too, or else adjust both tests to accept the error we get on
OpenBSD as well as the normal error; (2) somebody really ought to
crank up a modern OpenBSD critter that's running the TAP tests.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2021-01-08 01:36:25 pgsql: Adjust createdb TAP tests to work on recent OpenBSD.
Previous Message Tom Lane 2021-01-07 16:45:47 pgsql: Further second thoughts about idle_session_timeout patch.