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