pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
目录
SPI_prepare 准备的语句所需参数个数SPI_prepare 准备的语句中某个参数的数据类型 OIDtrue if a plan prepared by SPI_prepare can be used with SPI_cursor_openSPI_prepare 准备好的语句SPI_prepare 准备好的语句SPI_prepare 创建的 计划建立一个游标SPI_execute 或类似函数创建的结果行集服务器编程接口(SPI)使用户定义 C 函数的编写者能够在其函数中运行 SQL 命令。SPI 是一组接口函数, 用于简化对解析器、规划器和执行器的访问。SPI 还负责一部分内存管理工作。
可用的过程语言提供了多种从过程中执行 SQL 命令的方法。这些设施大多基于 SPI,因此本文档对这些语言的用户也会有帮助。
为避免误解,本文用“函数”指SPI接口函数,而用“过程”指使用SPI的用户定义 C 函数。
注意,如果通过 SPI 调用的某条命令失败,控制不会返回到你的过程。 相反,执行该过程的事务或子事务会被回滚。(考虑到 SPI 函数大多 记录了错误返回约定,这一点可能看起来有些意外。不过,这些约定 只适用于在 SPI 函数自身内部检测到的错误。)如果在可能失败的 SPI 调用外围建立自己的子事务,则可以在出错后重新取得控制权。
SPI 函数在成功时返回非负结果(要么直接作为整数返回值, 要么如后文所述存放在全局变量 SPI_result 中)。发生错 误时,则返回负值或 NULL。
使用 SPI 的源代码文件必须包含头文件 executor/spi.h。
SPI_prepare 准备的语句所需参数个数SPI_prepare 准备的语句中某个参数的数据类型 OIDtrue if a plan prepared by SPI_prepare can be used with SPI_cursor_openSPI_prepare 准备好的语句SPI_prepare 准备好的语句SPI_prepare 创建的 计划建立一个游标译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。