pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
目录
PL/pgSQL 是Postgres数据库系统的一个 可装载过程语言。
这个软件包最初由 Jan Wieck 编写。
PL/pgSQL 的设计目标是创建一种可装载的过程语言,它
可以用来创建函数和触发器过程,
向SQL语言中增加控制结构,
能执行复杂的计算,
继承所有用户定义的类型、函数和操作符,
可以被定义为服务器所信任,
易于使用。
PL/pgSQL 调用处理器在后端第一次调用函数时解析函数的源文本并 生成一棵内部二进制指令树。生成的字节码在调用处理器中通过 函数的对象 ID 来标识。这确保了通过 DROP/CREATE 序列更改函数 会立即生效,而不需要建立新的数据库连接。
对于函数中使用的所有表达式和SQL语句, PL/pgSQL 字节码解释器都会使用 SPI 管理器的 SPI_prepare() 和 SPI_saveplan() 函数创建一个预备好的执行计划。这是在该语句 第一次在 PL/pgSQL 函数中被处理时完成的。因此,一个包含大量 可能需要执行计划的条件语句的函数,只会准备和保存那些在 数据库连接的整个生命期内真正被用到的计划。
除了用户定义类型的输入/输出转换和计算函数之外,凡是能用 C 语言函数定义的东西也都可以用 PL/pgSQL 完成。你可以创建 复杂条件计算函数,之后用它们来定义操作符,或在函数索引中 使用它们。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。