历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.
第 26 章 PL/Perl - Perl 过程语言
PL/Perl 允许你用 Perl 编程语言编写函数,这些函数可以像 Postgres 内置的函数一样在 SQL 查询中使用。
PL/Perl 解释器是一个完整的 Perl
解释器。但为了维护系统的安全,某些操作已被禁用。一般来说,受限制的是那些与环境交互的操作。这包括文件句柄操作、require 和
use(用于外部模块)。应当注意这种安全并非绝对。事实上,几种拒绝服务攻击仍然可能——
内存耗尽和无限循环是两个例子。
26.1. 构建和安装 #
如果你从源代码安装
Postgres,要构建并安装 PL/Perl,必须给
configure 脚本加上
--with-perl 选项。PL/Perl 要求安装
Perl 时
libperl 库被构建为共享对象。在撰写本文时,操作系统发行的 Perl 包几乎都不是这样。构建时会出现类似下面的消息来指出这一事实:
*****
* Cannot build PL/Perl because libperl is not a shared library.
* Skipped.
*****因此你很可能必须手工重新构建并安装 Perl 才能构建 PL/Perl。
重新安装 Perl 后想重试构建 PL/Perl
时,切换到
Postgres 源代码树中的
src/pl/plperl 目录并执行命令
gmake clean gmake all gmake install
createlang 命令用来把该语言安装到一个数据库中。
$createlang plperl template1
如果把它安装到 template1 中,以后创建的所有数据库都会自动安装该语言。