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

SPI_saveplan

SPI_saveplan — 保存一个预备语句

Synopsis

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 比此函数更合适,因 为它基本能达到相同效果,同时无需实际复制该预备语句的数据结构。