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
по сравнению с этой функцией, поскольку она достигает в значительной степени того же результата без необходимости физического копирования структур данных подготовленного оператора.