SPI_saveplan

名称

SPI_saveplan -- 保存一个预备语句

大纲

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偏爱这个函数, 因为它基本上不需要物理上拷贝预备语句的数据结构就完成了相同的结果。