SPI_execp
SPI_execp — выполнить оператор в режиме чтения/записи
Синтаксис
int SPI_execp(SPIPlanPtrplan, Datum *values, const char *nulls, longcount)
Описание
SPI_execp действует подобно SPI_execute_plan, но ей не передаётся параметр read_only (всегда подразумевается false).
Аргументы
SPIPlanPtrplanподготовленный оператор (возвращаемый функцией
SPI_prepare)Datum *valuesМассив фактических значений параметров. Его размер должен равняться числу аргументов оператора.
const char *nullsМассив, описывающий, в каких параметрах передаётся NULL. Должен иметь размер, равный числу аргументов оператора.
Если в
nullsпередаётсяNULL,SPI_execpсчитает, что ни один из параметров не равен NULL. В противном случае элемент массиваnullsдолжен содержать' ', если значение соответствующего параметра не NULL, либо'n', если это значение — NULL. (В последнем случае значение, переданное в соответствующем элементеvalues, не учитывается.) Заметьте, чтоnulls— это не текстовая строка, а просто массив: ноль ('\0') в конце не нужен.longcountмаксимальное число строк, которое должно быть возвращено; с
0ограничения нет
Возвращаемое значение
См. SPI_execute_plan.
Переменные SPI_processed и SPI_tuptable устанавливаются как в SPI_execute, если вызов был успешным.
SPI_execp
SPI_execp — execute a statement in read/write mode
Synopsis
int SPI_execp(SPIPlanPtrplan, Datum *values, const char *nulls, longcount)
Description
SPI_execp is the same as SPI_execute_plan, with the latter's read_only parameter always taken as false.
Arguments
SPIPlanPtrplanprepared statement (returned by
SPI_prepare)Datum *valuesAn array of actual parameter values. Must have same length as the statement's number of arguments.
const char *nullsAn array describing which parameters are null. Must have same length as the statement's number of arguments.
If
nullsisNULLthenSPI_execpassumes that no parameters are null. Otherwise, each entry of thenullsarray should be' 'if the corresponding parameter value is non-null, or'n'if the corresponding parameter value is null. (In the latter case, the actual value in the correspondingvaluesentry doesn't matter.) Note thatnullsis not a text string, just an array: it does not need a'\0'terminator.longcountmaximum number of rows to return, or
0for no limit
Return Value
See SPI_execute_plan.
SPI_processed and SPI_tuptable are set as in SPI_execute if successful.