Fix locale-dependent test case.

psql parses the interval argument of \watch with locale-dependent
strtod().  In commit 00beecfe8 I added a test case that exercises
a fractional interval, but I hard-coded 0.01 which doesn't work
in locales where the radix point isn't ".".  We don't want to
change this longstanding parsing behavior, so fix the test case
to generate a suitably locale-aware spelling.

Report and patch by Alexander Korotkov.

Discussion: https://postgr.es/m/CAPpHfdv+10Uk6FWjsh3+ju7kHYr76LaRXbYayXmrM7FBU-=Hgg@mail.gmail.com
This commit is contained in:
Tom Lane 2023-04-07 10:35:11 -04:00
parent 21d7c05a5c
commit cd82e5c79d

View File

@ -3,6 +3,7 @@
use strict; use strict;
use warnings; use warnings;
use locale;
use PostgreSQL::Test::Cluster; use PostgreSQL::Test::Cluster;
use PostgreSQL::Test::Utils; use PostgreSQL::Test::Utils;
@ -351,9 +352,10 @@ psql_like(
); );
# Check \watch # Check \watch
# Note: the interval value is parsed with locale-aware strtod()
psql_like( psql_like(
$node, $node,
'SELECT 1 \watch c=3 i=0.01', sprintf('SELECT 1 \watch c=3 i=%g', 0.01),
qr/1\n1\n1/, qr/1\n1\n1/,
'\watch with 3 iterations'); '\watch with 3 iterations');