SPI_saveplan
在内存里保存一个传递进来的语句(用
SPI_prepare
准备的),它将不会被SPI_finish
和事务管理器释放,并且返回一个指向拷贝的语句的指针。
这样就给你在当前会话里的随后的调用中复用这个预备规划的能力。
指向保存的规划的指针;如果不成功则为 NULL 。出错的时候,像下面这样设置 SPI_result :
如果plan是NULL或者无效的
如果从一个未连接的过程中调用
原先传入的语句并没有释放,所以你可能希望在其上执行SPI_freeplan
,
以避免内存泄露直到SPI_finish
。
在大多数情况下,SPI_keepplan
偏爱这个函数,
因为它基本上不需要物理上拷贝预备语句的数据结构就完成了相同的结果。