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