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,表示不执行任何操作