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 优于这个函数,
因为它无需物理复制预备语句的数据结构就能基本达成相同的
结果。