历史版本。 PostgreSQL 10 已结束支持。 2022-11-10. 请参阅 当前版本手册.
SPI_saveplan
SPI_saveplan — 保存一个预备语句
大纲
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)描述
SPI_saveplan 会把传入的预备语句(由
SPI_prepare 准备)复制到不会被
SPI_finish 或事务管理器释放的内存中,并返回该副本的指针。这让你能够在当前会话后续的过程调用中重用预备语句。
参数
SPIPlanPtrplan要保存的预备语句
返回值
复制后语句的指针;如果未成功则返回 NULL。错误时,SPI_result 会被这样设置:
SPI_ERROR_ARGUMENT如果
plan为NULL或无效SPI_ERROR_UNCONNECTED如果从未连接的过程中调用
注解
原始传入的预备语句不会被释放,因此你可能需要对其调用
SPI_freeplan,以避免在
SPI_finish 之前发生内存泄露。
在大多数情况下,SPI_keepplan 比此函数更合适,因为它基本能达到相同效果,同时无需实际复制该预备语句的数据结构。