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