Name
SPI_saveplan -- 保存一个规划
Synopsis
void * SPI_saveplan(void * plan)
描述
SPI_saveplan 在内存里保存一个传递进来的规划(用 SPI_prepare 准备的),
避免它被 SPI_finish 和事务管理器释放,并且返回一个指向保存的规划的指针。
这样就给你在当前绘画里的随后的调用中复用这个准备好的规划的能力。
你可以在一个局部变量里保存这个指针。在准备一个规划或者在 SPI_execute_plan 里使用一个已经准备好的规划的时候,
一定要检查这个指针是否为 NULL。
返回值
指向保存的规划的指针;如果不成功则为 NULL。
出错的时候,像下面这样设置 SPI_result:
- SPI_ERROR_ARGUMENT
如果 plan 是 NULL
- SPI_ERROR_UNCONNECTED
如果从一个未连接的过程中调用
注意
如果会话过程中,准备好的规划引用的一个对象(一个表,函数,等等)被删除,
那么 SPI_execute_plan 执行此规划的结果将不可预期。