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

目录
43.1. Python 2 vs. Python 3
43.2. PL/Python 函数
43.3. 数据值
43.3.1. 数据类型映射
43.3.2. Null, None
43.3.3. Arrays, Lists
43.3.4. 复合类型
43.3.5. 设置返回函数
43.4. 共享数据
43.5. 匿名代码块
43.6. 触发器函数
43.7. 数据库访问
43.7.1. 数据库访问函数
43.7.2. 捕获错误
43.8. 明确的子事务
43.8.1. 子事务内容管理器
43.8.2. 旧的Python版本
43.9. 实用函数
43.10. 环境变量

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

要在特定数据库中安装PL/Python,使用CREATE EXTENSION plpythonu, 或者在命令行使用createlang plpythonu dbname (参见第 43.1 节)。

提示: 如果一门语言安装到了template1里面,那么随后创建的数据库都将会自动安装该语言。

PostgreSQL 7.4为止,PL/Python只能当作一种 "不可信"语言,意思是它没有提供任何限制用户可为与不可为的手段。 因此,它被重新命名为plpythonu。可信任的变量plpython 可能在将来又变的可用,如果在Python里开发了一个新的安全执行机制。 在不受信任的PL/Python中函数的作者必须注意函数不能用来做任何不想要做的事情, 因为它能做可以由一个作为数据库管理员登录的用户所做的任何事情。 只有超级用户可以在不受信任的语言如plpythonu中创建函数。

注意: 使用源码包的用户必须在安装的过程中声明打开PL/Python的编译。 (更多信息参见安装操作指南)二进制包的用户可能会在独立的子包中找到PL/Python.