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