SPI_freetuptable — 释放由 SPI_execute 或类似函数创建的结果行集
void SPI_freetuptable(SPITupleTable * tuptable)
SPI_freetuptable 释放由先前的 SPI 命令执行函数 (例如 SPI_execute)创建的结果行集。因此,调用它 时经常会直接把全局变量 SPI_tuptable 作为参数。
如果某个使用 SPI 的 C 函数需要执行多条命令,并且不想一直保留前面命令的 结果,那么这个函数就很有用。注意,任何尚未释放的结果行集都会在 SPI_finish 时被释放。此外,如果在使用 SPI 的 C 函 数执行过程中开启了一个子事务而后又中止,SPI 会自动释放该子事务运行期间 创建的所有结果行集。
从 PostgreSQL 9.3 开始, SPI_freetuptable 内置了保护逻辑,以避免对同一个结 果行集重复发出删除请求。在更早的版本中,重复删除会导致崩溃。
SPITupleTable * tuptable要释放的结果行集指针,或传入 NULL 表示不执行任何操作
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。