SPI_execute_plan#
SPI_execute_plan
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
Массив, описывающий, какие параметры являются нулевыми. Должен иметь такую же длину, как и количество аргументов в операторе.
Если параметр
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
меньше 0SPI_ERROR_PARAM
если
values
равноNULL
иplan
был подготовлен с некоторыми параметрами
SPI_processed
и
SPI_tuptable
устанавливаются, как и в
SPI_execute
, в случае успешного выполнения.