From cd82e5c79d145dddd7a30ed35e4d3b83945b56f3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 7 Apr 2023 10:35:11 -0400 Subject: [PATCH] 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 --- src/bin/psql/t/001_basic.pl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/psql/t/001_basic.pl b/src/bin/psql/t/001_basic.pl index 56b1e3e4a6..596746de17 100644 --- a/src/bin/psql/t/001_basic.pl +++ b/src/bin/psql/t/001_basic.pl @@ -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');