/ / postgresql no puede cargar el módulo perl - perl, postgresql

postgresql no puede cargar el módulo perl - perl, postgresql

Estoy teniendo problemas para crear la función postgresql en plperl

CREATE OR REPLACE FUNCTION zm_json (TEXT, TEXT) RETURNS TEXT AS $$
use JSON::XS;
# do something
return  $json_out;
$$ LANGUAGE plperl;

Cuando quiero crear la función por encima de iam conseguir

ERROR:  creation of Perl function "zm_json" failed: Unable to load JSON/XS.pm into plperl at line 2.
BEGIN failed--compilation aborted at line 2.

JSON :: XS está bajo /usr/lib/perl5 y Perl dentro de mi postgres muestra este directorio en libs

CREATE OR REPLACE FUNCTION zm_perl_directories() RETURNS TEXT AS $$
return join(":", @INC);
$$ LANGUAGE plperl;

select zm_perl_directories();
-[ RECORD 1 ]-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------
zm_perl_directories | /etc/perl:/usr/local/lib/perl/5.10.1:/usr/local/share/perl/5.10.1:/usr/lib/perl5:/usr/share/perl5:/usr/lib/perl/5.10:/usr/share/perl/5.10:/usr/local/lib/site_perl:.

¿Alguna idea de por qué?

Respuestas

4 para la respuesta № 1

Creo que plperl está utilizando un subconjunto más seguro de las capacidades de Perl.

Como tal, algunas incorporaciones de lenguaje están restringidas. use o require es uno de esos, de lo contrario, permitiría la ejecución de código arbitrario.

Si no te importa eso, siéntete libre de usar PL/Perlu, que es el perl sin restricciones.