SPI_saveplan — 保存已准备好的语句
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan
)
SPI_saveplan
将传递的语句(由 SPI_prepare
准备)复制到不会由 SPI_finish
或事务管理器释放的内存中,并返回对已复制语句的指针。这样一来,您就可以在当前会话中重复使用已准备好的语句的后续调用中。
plan
SPIPlanPtr
要保存的预准备语句
指向已复制语句的指针;或在不成功时返回 NULL
。在错误情况下,SPI_result
会设置如下所示
SPI_ERROR_ARGUMENT
如果 plan
为 NULL
或无效
SPI_ERROR_UNCONNECTED
如果从未连接的 C 函数调用
最初传入的语句并未释放,因此您可能希望对其执行 SPI_freeplan
以避免在 SPI_finish
之前泄漏内存。
在大多数情况下,SPI_keepplan
比此函数优先,因为它在很大程度上实现相同的结果,而无需物理复制预准备语句的数据结构。