SPI_saveplan — 保存预处理语句
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
SPI_saveplan 将通过 SPI_prepare 准备的语句复制到内存中,这块内存不会被 SPI_finish 或事务管理器释放,并返回指向复制的语句的指针。这使您能够在当前会话中后续调用 C 函数时重用预处理语句。
SPIPlanPtr plan要保存的预处理语句
指向复制的语句的指针;如果失败则为 NULL。发生错误时,SPI_result 设置如下:
SPI_ERROR_ARGUMENT如果 plan 是 NULL 或无效
SPI_ERROR_UNCONNECTED如果从未连接的 C 函数调用
原始传入的语句不会被释放,因此您可能希望对其调用 SPI_freeplan 以避免内存泄漏,直到 SPI_finish。
在大多数情况下,SPI_keepplan 比此函数更受青睐,因为它实现了基本相同的结果,而无需实际复制预处理语句的数据结构。