章 47.服务器编程接口

目录

服务器编程接口(SPI)使用户定义的 C 函数的编写者能够在其函数内运行 SQL 命令。 SPI 是一组接口函数,用于简化对解析器,计划器和 Actuator 的访问。 SPI 还执行一些内存 Management。

Note

可用的过程语言提供了各种从函数执行 SQL 命令的方法。这些工具大多数都是基于 SPI 的,因此本文档也可能适用于这些语言的用户。

请注意,如果通过 SPI 调用的命令失败,则控制不会返回给 C 函数。而是将回滚执行 C 函数的事务或子事务。 (考虑到 SPI 函数大多已记录了错误返回约定,这似乎令人惊讶.但是,这些约定仅适用于 SPI 函数本身中检测到的错误.)可以通过在 SPI 周围构建自己的子事务来恢复错误后的控制。可能失败的呼叫。

SPI 函数成功返回非负结果(通过返回的整数值或在全局变量SPI_result中,如下所述)。错误时,将返回否定结果或NULL

使用 SPI 的源代码文件必须包含头文件executor/spi.h