↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

SPI_freetuptable

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

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.