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

From Tom Lane
Subject Re: pgsql: createdb: Fix quoting of --encoding, --lc-ctype and --lc-collate
Date
Msg-id 231373.1610058324@sss.pgh.pa.us
Whole thread Raw
In response to Re: pgsql: createdb: Fix quoting of --encoding, --lc-ctype and--lc-collate  (Michael Paquier <michael@paquier.xyz>)
Responses Re: pgsql: createdb: Fix quoting of --encoding, --lc-ctype and --lc-collate
List pgsql-committers
Michael Paquier <michael@paquier.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:
invalidlocale name)/' 
#   at t/020_createdb.pl line 35.
#                   'createdb: error: database creation failed: ERROR:  new collation (foo'; SELECT '1) is incompatible
withthe 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



pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Further second thoughts about idle_session_timeout patch.
Next
From: Tom Lane
Date:
Subject: pgsql: Adjust createdb TAP tests to work on recent OpenBSD.