SPI_saveplan#

SPI_saveplan

SPI_saveplan

SPI_saveplan — сохранить подготовленный оператор

Синтаксис

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

Описание

SPI_saveplan копирует переданный оператор (подготовленный с помощью SPI_prepare) в память, которая не будет освобождена ни SPI_finish, ни менеджером транзакций, и возвращает указатель на скопированный оператор. Это позволяет повторно использовать подготовленные операторы в последующих вызовах вашей функции на языке C в текущей сессии.

Аргументы

SPIPlanPtr plan

подготовленный оператор, который нужно сохранить

Возвращаемое значение

Указатель на скопированный оператор; или NULL, если операция не удалась. При ошибке, значение SPI_result устанавливается следующим образом:

SPI_ERROR_ARGUMENT

Если параметр plan равен NULL или недопустим, то

SPI_ERROR_UNCONNECTED

если вызывается из несвязанной C-функции

Примечания

Исходный переданный оператор не освобождается, поэтому стоит выполнить SPI_freeplan для предотвращения утечки памяти до SPI_finish.

В большинстве случаев предпочтительнее использовать функцию SPI_keepplan по сравнению с этой функцией, поскольку она достигает в значительной степени того же результата без необходимости физического копирования структур данных подготовленного оператора.