Postgresql Windows build and modern perl (>=5.28)

Поиск
Список
Период
Сортировка
От Victor Wagner
Тема Postgresql Windows build and modern perl (>=5.28)
Дата
Msg-id 20200501134711.08750c5f@antares.wagner.home
обсуждение исходный текст
Ответы Re: Postgresql Windows build and modern perl (>=5.28)  (Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>)
Список pgsql-hackers
Collegues,

Postgresql embeded perl, plperl contain code long time ago copied
from POSIX.xs file in the perl distribution.
It is function setlocale_perl, which does some allocation of
perl-specific locale data using functions(or macros) new_ctype,
new_collate and new_numeric.

This is used only for WIN32, because as comment in the code said:

   /*
     * The perl library on startup does horrible things like call
     * setlocale(LC_ALL,""). We have protected against that on most platforms
     * by setting the environment appropriately. However, on Windows,
     * setlocale() does not consult the environment, so we need to save the
     * existing locale settings before perl has a chance to mangle them and
     * restore them after its dirty deeds are done.
     *
     * MSDN ref:
     * http://msdn.microsoft.com/library/en-us/vclib/html/_crt_locale.asp
     *
     * It appears that we only need to do this on interpreter startup, and
     * subsequent calls to the interpreter don't mess with the locale
     * settings.
     *
     * We restore them using setlocale_perl(), defined below, so that Perl
     * doesn't have a different idea of the locale from Postgres.
     *
     */


This worked up to perl 5.26. But in perl 5.28 these macros and
corresponding functions became strictly private. However public
function Perl_setlocale appeared in libperl, which from the quick
glance to the code does the same thing as setlocale_perl in plperl code.

Attached patch makes use of this function if PERL_VERSION >= 28. 
It makes plperl compile with ActiveStatePerl 5.28 and StrawberryPerl
5.30.2.1.

However, I'm not sure that I've choose correct approach. May be perl
just no more does horrible things with locale at startup?

-- 


Вложения

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

Предыдущее
От: Jose Luis Tallon
Дата:
Сообщение: Re: Raw device on PostgreSQL
Следующее
От: David Steele
Дата:
Сообщение: Re: do {} while (0) nitpick