mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Tidy up and refactor plperl.c.
- Changed MULTIPLICITY check from runtime to compiletime. No loads the large Config module. - Changed plperl_init_interp() to return new interp and not alter the global interp_state - Moved plperl_safe_init() call into check_interp(). - Removed plperl_safe_init_done state variable as interp_state now covers that role. - Changed plperl_create_sub() to take a plperl_proc_desc argument. - Simplified return value handling in plperl_create_sub. - Changed perl.com link in the docs to perl.org and tweaked wording to clarify that require, not use, is what's blocked. - Moved perl code in large multi-line C string literal macros out to plc_*.pl files. - Added a test2macro.pl utility to convert the plc_*.pl files to macros in a perlchunks.h file which is #included - Simplifed plperl_safe_init() slightly - Optimized pg_verifymbstr calls to avoid unneeded strlen()s. Patch from Tim Bunce, with minor editing from me.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.71 2009/11/29 03:02:27 tgl Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.72 2010/01/09 02:40:50 adunstan Exp $ -->
|
||||
|
||||
<chapter id="plperl">
|
||||
<title>PL/Perl - Perl Procedural Language</title>
|
||||
@ -14,7 +14,7 @@
|
||||
<para>
|
||||
PL/Perl is a loadable procedural language that enables you to write
|
||||
<productname>PostgreSQL</productname> functions in the
|
||||
<ulink url="http://www.perl.com">Perl programming language</ulink>.
|
||||
<ulink url="http://www.perl.org">Perl programming language</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -313,7 +313,8 @@ SELECT * FROM perl_set();
|
||||
use strict;
|
||||
</programlisting>
|
||||
in the function body. But this only works in <application>PL/PerlU</>
|
||||
functions, since <literal>use</> is not a trusted operation. In
|
||||
functions, since the <literal>use</> triggers a <literal>require</>
|
||||
which is not a trusted operation. In
|
||||
<application>PL/Perl</> functions you can instead do:
|
||||
<programlisting>
|
||||
BEGIN { strict->import(); }
|
||||
|
Reference in New Issue
Block a user