Kirk Wolak <wolakk@gmail.com> writes: > Can you change the 0.01 to just 1 or 0? > I assume it will work then! (and better than a full removal)?
IMO the point of that test is largely to exercise this locale-dependent behavior, so I'm very unwilling to dumb it down to that extent.
Sorry, I meant simply as opposed to deleting the test to get it to pass.
What seems to be happening is that the spawned psql process is making a different choice about what the LC_NUMERIC locale is than its parent perl process did. That seems like it might be a bug in itself, since POSIX is pretty clear about how you're supposed to derive the locale from the relevant environment variables. But maybe it's Perl's bug?
regards, tom lane
Did you try the print statement that Andrey asked Pavel to try?
Because it gave 2 different results for Pavel. And Pavel's system has the problem, but yours does not.
cat test.pl use locale; my $result = sprintf('SELECT 1 \watch c=3 i=%g', 0.01); print ">>$result<<\n";