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