SPI_execute_plan — выполнить оператор, подготовленный функцией SPI_prepare
int SPI_execute_plan(SPIPlanPtrplan, Datum *values, const char *nulls, boolread_only, longcount)
SPI_execute_plan выполняет оператор, подготовленный функцией
SPI_prepare или одной из родственных ей функций.
read_only и
count имеют ту же интерпретацию, что и в
SPI_execute.
SPIPlanPtr plan
подготовленное выражение (возвращаемое SPI_prepare)
Datum * valuesМассив фактических значений параметров. Должен иметь ту же длину, что и количество аргументов оператора.
const char * nullsМассив, определяющий, какие параметры имеют значение null. Должен иметь ту же длину, что и количество аргументов оператора.
Если nulls имеет значение NULL то
SPI_execute_plan предполагает, что ни один из параметров не равен null. В противном случае каждый элемент массива nulls
должен иметь значение ' ' , если соответствующее значение параметра не равно null, или 'n' , если соответствующее значение параметра равно null. (В последнем случае фактическое значение в соответствующем элементе values не имеет значения.) Обратите внимание, что nulls не является текстовой строкой, а представляет собой просто массив: ему не требуется '\0' символ завершения.
bool read_onlytrue для выполнения в режиме «только чтение»
long count
максимальное количество строк для возврата
или 0 для отсутствия ограничений
Возвращаемое значение такое же, как и для SPI_execute,
со следующими дополнительными возможными отрицательными результатами (кодами ошибок):
SPI_ERROR_ARGUMENT
если plan имеет значение NULL или недействителен,
или count меньше 0
SPI_ERROR_PARAM
если values имеет значение NULL и
plan был подготовлен с определёнными параметрами
SPI_processed и
SPI_tuptable устанавливаются так же, как в
SPI_execute в случае успеха.