Fix Utils.pm's locale-munging so that Perl itself is also affected.
authorTom Lane
Tue, 18 Apr 2023 17:31:31 +0000 (13:31 -0400)
committerTom Lane
Tue, 18 Apr 2023 17:31:46 +0000 (13:31 -0400)
commitb124104e73c0e91714969e1ae24d661264c76b96
treef66c65afda22113a1ef851e0817c2b5433f7b416
parent363e8f9115469fe3d30a80b694cd60e9db3b2537
Fix Utils.pm's locale-munging so that Perl itself is also affected.

Utils.pm has a BEGIN block that editorializes on the locale-related
environment variables, primarily in order to stabilize the behavior
of child programs.  It turns out that if the calling test script
has already done "use locale", this fails to affect the behavior
of Perl itself, causing locale behavior to be different between
Perl and child programs.  That breaks commit cd82e5c79's attempt
to deal with locale-specific behavior in psql.

To fix, we just need to call setlocale() to redo the calculation
of locale.

Per report from Aleksander Alekseev.  No back-patch for now, since
there are no locale-dependent TAP tests in prior branches, and
I'm not yet convinced that this won't have side-effects of its own.

Discussion: https://postgr.es/m/CAJ7c6TO9KpYYxoVVseWEQB5KtjWDkt8NfyAeKPcHoe2Jq+ykpw@mail.gmail.com
src/test/perl/PostgreSQL/Test/Utils.pm