选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

SPI_saveplan

SPI_saveplan — 保存一个预备语句

Synopsis

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

描述

SPI_saveplan 会把传入的预备语句(由 SPI_prepare 准备)复制到不会被 SPI_finish 或事务管理器释放的内存中,并返回该副 本的指针。这让你能够在当前会话后续的过程调用中重用预备语句。

参数

SPIPlanPtr plan

要保存的预备语句

返回值

返回指向复制后的语句的指针;如果失败,则返回 NULL。出错时,SPI_result 设置如下:

SPI_ERROR_ARGUMENT

如果planNULL或无效

SPI_ERROR_UNCONNECTED

如果从未连接的过程中调用

注解

原始传入的预备语句不会被释放,因此你可能需要对其调用 SPI_freeplan,以避免在 SPI_finish之前发生内存泄露。

在大多数情况下,SPI_keepplan 比此函数更合适,因 为它基本能达到相同效果,同时无需实际复制该预备语句的数据结构。