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
1 changed files with 3 additions and 1 deletions

View File

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