Re: psql tests hangs

Поиск
Список
Период
Сортировка
От Kirk Wolak
Тема Re: psql tests hangs
Дата
Msg-id CACLU5mS=UV5N6qCJAZpDxmagkuNZM+WjiQdFztdjU1u8VN346g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: psql tests hangs  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: psql tests hangs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Thu, May 11, 2023 at 8:08 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
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";

and when Pavel ran it, he got:

[pavel@localhost psql]$ perl test.pl
>>SELECT 1 \watch c=3 i=0,01<<
[pavel@localhost psql]$ LANG=C perl test.pl
>>SELECT 1 \watch c=3 i=0.01<<

Now I am curious what you get?

Because yours works.  This should identify the difference.

Kirk...

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: running logical replication as the subscription owner
Следующее
От: Tom Lane
Дата:
Сообщение: Re: psql tests hangs