BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG
От | PG Bug reporting form |
---|---|
Тема | BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG |
Дата | |
Msg-id | 17946-3e84cb577e9551c3@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 17946 Logged by: Guido Brugnara Email address: gdo@leader.it PostgreSQL version: 12.15 Operating system: Ubuntu 20.04 Description: After upgrading an application using Postgresql from version 10 to 12, fields of type "money" are no longer generated with the € symbol but with $. I identified the problem that occurs when making use of functions with "LANGUAGE plperl," see with the following queries to be executed in order: # from shell ... sudo su -c psql\ postgres postgres <<'__SQL__'; SET lc_monetary TO 'C'; SELECT 12.34::money AS price; SET lc_monetary TO 'it_IT.UTF-8'; SELECT 12.34::money AS price; SET lc_monetary TO 'en_GB.UTF-8'; SELECT 12.34::money AS price; CREATE EXTENSION plperl; SET lc_monetary TO 'C'; SELECT 12.34::money AS price; DO LANGUAGE 'plperl' $$ my $rv = spi_exec_query(q{SELECT 12.34::money AS price;}, 1);elog(NOTICE, $rv->{rows}[0]->{price});$$; SET lc_monetary TO 'it_IT.UTF-8'; SELECT 12.34::money AS price; DO LANGUAGE 'plperl' $$ my $rv = spi_exec_query(q{SELECT 12.34::money AS price;}, 1);elog(NOTICE, $rv->{rows}[0]->{price});$$; SET lc_monetary TO 'en_GB.UTF-8'; SELECT 12.34::money AS price; DO LANGUAGE 'plperl' $$ my $rv = spi_exec_query(q{SELECT 12.34::money AS price;}, 1);elog(NOTICE, $rv->{rows}[0]->{price});$$; __SQL__ #end. The first three SELECTs generate content with the currencies Dollar, Euro & Pound, as expected, while the last three only with Dollar. It would appear that after first DO LANGUAGE 'plper' call, LC_MONETARY even if it is varied, has no effect in subsequent queries. Any suggestions?
В списке pgsql-bugs по дате отправления: