PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

SPI_freetuptable

SPI_freetuptable — 释放由 SPI_execute 或类似函数创建的行集

Synopsis

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 表示什么都不做