SPI_prepare
SPI_prepare
SPI_prepare
can be used with
SPI_cursor_open
SPI_prepare
SPI_prepare
SPI_prepare
SPI_execute
or a similar
function服务器编程接口(SPI)给予用户定义C函数编写者在其函数内运行SQL命令的能力。SPI是一组接口函数,它们可以简化对解析器、规划器和执行器的访问。SPI也做一些内存管理。
Note: 可用的过程语言提供了多种方法从过程中执行 SQL 命令。大部分这些设施都是基于 SPI 的,因此这个文档也对那些语言的用户有用。
为了避免误解,我们在谈及SPI接口函数时使用术语"函数",而谈及使用SPI的用户定义的 C 函数时使用术语"过程"。
注意如果一个通过 SPI 调用的命令失败,那么控制将会返回到你的过程中。当然啦,你的过程所在的事务或者子事务将被回滚(这可能看起来令人惊讶,因为据文档所说 SPI 函数大多数都有错误返回约定。但是那些约定只适用于在 SPI 函数本身内部检测到的错误)。通过在可能失败的 SPI 调用周围建立自己的子事务可以在错误之后恢复控制。当前文档中并未记载这些,因为所需的机制仍然在变化中。
SPI成功时返回一个非负结果(要么通过一个返回的整数值,要么如下所述放在全局变量SPI_result中)。错误时,将会返回一个负结果或者NULL。
使用 SPI 的源代码文件必须包括头文件executor/spi.h。