Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

SPI_saveplan

SPI_saveplan — 保存已准备的语句

概要

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

说明

SPI_saveplan 将已传递的语句(由 SPI_prepare 准备)复制到不会被 SPI_finish 或事务管理器释放的内存中,并返回指向已复制语句的指针。这使您能够在当前会话中 C 函数的后续调用中重用已准备的语句。

参数

SPIPlanPtr plan

要保存的已准备好的语句

返回值

指向已复制语句的指针;如果失败,则为 NULL。如果出错,SPI_result 设置为以下内容

SPI_ERROR_ARGUMENT

如果 planNULL 或无效

SPI_ERROR_UNCONNECTED

如果从未连接的 C 函数调用

注释

最初传递的语句不会被释放,因此你可能希望对其执行 SPI_freeplan,以避免在 SPI_finish 之前泄漏内存。

在大多数情况下,SPI_keepplan 比此函数更受青睐,因为它在不需要物理复制已准备语句的数据结构的情况下实现了大致相同的结果。