在执行另外一个可能也使用了 SPI 的过程之前,应该调用SPI_push
。
之后,SPI 不再是"已连接"状态,除非再次进行SPI_push
,
否则 SPI 函数调用将被拒绝。这样就保证了你的过程的 SPI
状态和另外一个你调用的过程的状态之间的干净的隔离。在另外一个过程返回后,
调用SPI_pop
恢复对你自己的 SPI 状态的访问。
请注意SPI_execute
和相关的函数在把控制交回 SQL
执行引擎之前自动做与SPI_push
相当的工作,
因此你在使用这些函数的时候不用担心这些。只有在你直接调用任意可能包含
SPI_connect
调用的代码的时候,你才需要发出
SPI_push
和SPI_pop
。