diff --git a/doc/src/sgml/plperl.sgml b/doc/src/sgml/plperl.sgml index b9668103ecd..a94163e7be6 100644 --- a/doc/src/sgml/plperl.sgml +++ b/doc/src/sgml/plperl.sgml @@ -1,4 +1,4 @@ - + PL/Perl - Perl Procedural Language @@ -646,6 +646,25 @@ $$ LANGUAGE plperl; If the above function was created by a superuser using the language plperlu, execution would succeed. + + + + For security reasons, to stop a leak of privileged operations from + PL/PerlU to PL/Perl, these two languages + have to run in separate instances of the Perl interpreter. If your + Perl installation has been appropriately compiled, this is not a problem. + However, not all installations are compiled with the requisite flags. + If PostgreSQL detects that this is the case then it will + not start a second interpreter, but instead create an error. In + consequence, in such an installation, you cannot use both + PL/PerlU and PL/Perl in the same backend + process. The remedy for this is to obtain a Perl installation created + with the appropriate flags, namely either usemultiplicity or + both usethreads and useithreads. + For more details,see the perlembed manual page. + + + diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 58b4eaf50b0..78a72cea008 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,4 +1,4 @@ - +