pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
目录
SPI_prepare 准备好的计划SPI_prepare 创建的 计划建立一个游标SPI_exec 或类似函数创建的结果行集服务器编程接口(SPI)使用户定义 C 函数的编写者能够在其函数中运行 SQL 命令。SPI 是一组接口函数, 用于简化对解析器、规划器/优化器和执行器的访问。SPI 还负责一部分内存管理工作。
可用的过程语言提供了多种从过程中执行 SQL 命令的方法。这些方法中有一些 基于 SPI 或以 SPI 为蓝本,因此本文档对这些语言的用户也会有帮助。
为避免误解,本文用“函数”指SPI接口函数,而用“过程”指使用SPI的用户定义 C 函数。
注意,如果在过程执行期间,事务因某条命令中的错误而中止,控制将不会 返回到你的过程。相反,所有工作都会被回滚,服务器将等待客户端的下一 条命令。一个相关的限制是无法在过程内部执行 BEGIN、 COMMIT 和 ROLLBACK(事务控制 语句)。这两个限制将来都可能会被改变。
SPI 函数在成功时返回非负结果(要么直接作为整数返回值, 要么如后文所述存放在全局变量 SPI_result 中)。发生错 误时,则返回负值或 NULL。
使用 SPI 的源代码文件必须包含头文件 executor/spi.h。
SPI_prepare 准备好的计划SPI_prepare 创建的 计划建立一个游标译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。