章 44. PL/Python - Python 过程语言

目录
44.1. Python 2 vs. Python 3
44.2. PL/Python 函数
44.3. 数据值
44.3.1. 数据类型映射
44.3.2. Null, None
44.3.3. 数组、列表
44.3.4. 组合类型
44.3.5. 集合返回函数
44.4. 共享数据
44.5. 匿名代码块
44.6. 触发器函数
44.7. 数据库访问
44.7.1. 数据库访问函数
44.7.2. 捕捉错误
44.8. 显式子事务
44.8.1. 子事务上下文管理器
44.8.2. 更旧的 Python 版本
44.9. 实用函数
44.10. 环境变量

PL/Python过程语言允许用Python 语言编写PostgreSQL函数。

要在一个特定数据库中安装 PL/Python,请使用CREATE EXTENSION plpythonu或者用 shell 命令createlang plpythonu dbname(另见第 44.1 节)。

提示: 如果把一种语言安装在template1中,所有后续创建的数据库都会自动安装该语言。

PL/Python 只是一种"不可信"语言,这意味着它没有提供任何方法来限制用户在其中的所作所为,并且因此被命名为plpythonu。如果未来开发出在 Python 中的安全执行机制,可能会出现一种可信的变体plpython。不可信 PL/Python 中函数的编写者必须注意该函数不能被用来做任何它不应该做的事情,因为它将能做以数据库管理员用户登录能做的事情。只有超级用户能够创建plpythonu等不可信语言中的函数。

注意: 源码包的用户必须在安装过程中特别地启用 PL/Python 的编译(更多信息请参考安装指导)。二进制包的用户可以在一个单独的子包中找到 PL/Python。