SPI_finish

Name

SPI_finish --  把你的过程与 SPI 管理器断开.

Synopsis

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 分配的存储器. 这些存储器不能再利用!请参考存储器管理.