历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.
大纲
SPI_finish(void)
输入
无
输出
- int
→ SPI_OK_FINISH已正确断开连接时→ SPI_ERROR_UNCONNECTED从未连接的过程中调用时
描述
SPI_finish 关闭到 SPI 管理器的现有连接。在过程的本次调用期间完成所需的 SPI 操作之后,必须调用此函数。
如果在当前没有有效连接的情况下调用 SPI_finish,可能会得到错误返回 → SPI_ERROR_UNCONNECTED。这并不是什么根本性的问题;它只表示 SPI 管理器没有做任何事情。
用法
已连接的过程必须以调用
SPI_finish 作为最后一步,否则可能得到不可预测的结果!不过,如果事务是通过 elog(ERROR) 中止的,则不必担心这一点。在这种情况下,SPI 会自行清理。
算法
SPI_finish 执行以下操作:将你的过程与 SPI 管理器断开连接,并释放该过程自
SPI_connect 以来通过 palloc
所做的全部内存分配。这些分配不能再使用了!参见内存管理一节。