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