SPI_saveplan
SPI_saveplan — сохранить подготовленный оператор
Синтаксис
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan
)
Описание
SPI_saveplan
копирует переданный оператор (подготовленный функцией SPI_prepare
) в память, чтобы он не был ликвидирован функцией SPI_finish
или менеджером транзакций, и возвращает указатель на скопированный оператор. Это даёт возможность повторно использовать подготовленные операторы при последующих вызовах вашей процедуры в текущем сеансе.
Аргументы
SPIPlanPtr
plan
подготовленный оператор, который нужно сохранить
Возвращаемое значение
Указатель на скопированный оператор, либо NULL
в случае ошибки. При ошибке SPI_result
принимает одно из этих значений:
SPI_ERROR_ARGUMENT
если
plan
неверный илиNULL
SPI_ERROR_UNCONNECTED
если вызывается из неподключённой процедуры
Замечания
Изначально переданный оператор не освобождается, поэтому вы можете выполнить SPI_freeplan
для него, чтобы высвободить память до SPI_finish
.
В большинстве случаев SPI_keepplan
предпочтительнее данной функции, так как она даёт примерно тот же результат, но обходится без физического копирования структур данных подготовленного оператора.