Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6

SPI_push

名称

SPI_push -- 下推 SPI 栈以允许递归的 SPI 使用

大纲

void SPI_push(void)

描述

在执行另一个可能本身也想用 SPI 的过程之前,应该调用SPI_push。在SPI_push之后,SPI 就不再处于一种"已连接"状态,并且除非完成一次新的SPI_connect否则 SPI 函数调用将被拒绝。这保证了在过程的 SPI 状态和另一个你调用的过程之间的完全隔离。在其他过程返回后,调用SPI_pop以恢复对你自己的 SPI 状态的访问。

注意SPI_execute和相关函数在将控制交回给 SQL 执行引擎之前会自动做SPI_push的等效物,因此在使用那些函数时你无须担心这个问题。只有当你直接调用任何可能包含SPI_connect调用的代码时,你才真正需要发出SPI_pushSPI_pop