/ / postgresql non può caricare il modulo perl - perl, postgresql

postgresql non può caricare il modulo perl - perl, postgresql

Iam ha problemi a creare la funzione postgresql in plperl

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

Quando voglio creare la funzione sopra iam getting

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 è sotto /usr/lib/perl5 e perl all'interno del mio postgres mostra questa directory in 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:.

Qualche idea, perché?

risposte:

4 per risposta № 1

Penso che plperl stia usando un sottoinsieme più sicuro di funzionalità Perl.

In quanto tali, alcuni builtin di lingua sono limitati. use o require è uno di quelli, altrimenti potrebbe consentire l'esecuzione di codice arbitrario.

Se non ti interessa, sentiti libero di usare PL/Perlu, che è il Perl senza restrizioni.