SPI_freetuptable
SPI_freetuptable — освободить набор строк, созданный SPI_execute
или подобной функцией
Синтаксис
void SPI_freetuptable(SPITupleTable * tuptable
)
Описание
SPI_freetuptable
освобождает набор строк, созданных предыдущей функцией SPI выполнения команд, например SPI_execute
. Таким образом, при вызове этой функции в качестве аргумента часто передаётся глобальная переменная SPI_tuptable
.
Эта функция полезна, когда функция на C, использующая SPI, должна выполнить несколько команд, но не хочет сохранять результаты предыдущих команд до завершения. Заметьте, что любые не освобождённые таким образом наборы строк будут всё равно освобождены при выполнении SPI_finish
. Кроме того, если была запущена подтранзакция, а затем она прервалась в ходе выполнения использующей SPI функции, все наборы строк, созданные в рамках подтранзакции, будут автоматически освобождены.
Начиная с PostgreSQL версии 9.3, SPI_freetuptable
содержит защитную логику, отфильтровывающую повторные запросы на удаление одного и того же набора строк. В предыдущих версиях повторное удаление могло приводить к сбоям.
Аргументы
SPITupleTable *
tuptable
указатель на набор строк, который нужно освободить (если NULL, ничего не происходит)