SPI_execute_plan#

SPI_execute_plan

SPI_execute_plan

SPI_execute_plan — выполнить оператор, подготовленный с помощью SPI_prepare

Синтаксис

int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                     bool read_only, long count)

Описание

SPI_execute_plan выполняет оператор, подготовленный с помощью SPI_prepare или одного из его аналогов. read_only и count имеют ту же интерпретацию, что и в SPI_execute.

Аргументы

SPIPlanPtr plan

подготовленный оператор (возвращаемое функцией SPI_prepare)

Datum * values

Массив фактических значений параметров. Должен иметь такую же длину, как и количество аргументов оператора.

const char * nulls

Массив, описывающий, какие параметры являются нулевыми. Должен иметь такую же длину, как и количество аргументов в операторе.

Если параметр nulls равен NULL, то функция SPI_execute_plan предполагает, что ни один из параметров не является NULL. В противном случае, каждый элемент массива nulls должен быть равен ' ', если соответствующее значение параметра не является NULL, или 'n', если соответствующее значение параметра является NULL. (В последнем случае фактическое значение в соответствующей записи values не имеет значения). Обратите внимание, что nulls не является текстовой строкой, а только массивом: он не требует завершающего символа '\0'.

bool read_only

true для выполнения только для чтения

long count

максимальное количество строк для возврата, или 0 для отсутствия ограничений

Возвращаемое значение

Возвращаемое значение такое же, как и для SPI_execute, с возможными дополнительными ошибками (отрицательными результатами):

SPI_ERROR_ARGUMENT

Если plan равен NULL или недопустим, или count меньше 0

SPI_ERROR_PARAM

если values равно NULL и plan был подготовлен с некоторыми параметрами

SPI_processed и SPI_tuptable устанавливаются, как и в SPI_execute, в случае успешного выполнения.