历史版本。 PostgreSQL 8.4 已结束支持。 请参阅 当前版本手册.
SPI_push
SPI_push — 压入 SPI 栈以允许递归使用 SPI
大纲
void SPI_push(void)
描述
SPI_push应当在执行另一个自身可能希望使用 SPI 的过程之前调用。在SPI_push之后,SPI 不再处于“连接”状态,除非重新执行SPI_connect,否则 SPI 函数调用将被拒绝。这确保了你的过程的 SPI 状态与你所调用的另一个过程的状态之间的清晰分离。在另一个过程返回之后,调用SPI_pop恢复对你自己 SPI 状态的访问。
注意,SPI_execute及相关函数在把控制交还给 SQL 执行引擎之前,会自动完成相当于SPI_push的操作,因此在使用这些函数时无需为此操心。只有当你直接调用可能包含SPI_connect调用的任意代码时,才需要发出SPI_push和SPI_pop。