SPI_cursor_open_with_args — создать курсор, используя запрос и параметры
Portal SPI_cursor_open_with_args(const char *name, const char *command, intnargs, Oid *argtypes, Datum *values, const char *nulls, boolread_only, intcursorOptions)
SPI_cursor_open_with_args создает курсор
(внутренний портал) для выполнения указанного запроса.
Большинство параметров имеют те же значения, что и соответствующие
параметры функции SPI_prepare_cursor
и SPI_cursor_open.
Для однократного выполнения запроса этой функции следует отдавать предпочтение
перед SPI_prepare_cursor с последующим вызовом
SPI_cursor_open.
Если одна и та же команда должна выполняться с множеством различных параметров,
любой из методов может оказаться быстрее, в зависимости от стоимости перепланирования
в сравнении с эффективностью специализированных планов.
Переданные данные параметров будут скопированы в портал курсора, поэтому их можно освободить, пока курсор всё ещё существует.
Данная функция в настоящее время считается устаревшей и заменена на SPI_cursor_parse_open, которая предоставляет эквивалентную функциональность, используя более современный API для обработки параметров запроса.
const char * name
имя портала или NULL чтобы позволить системе
выбрать имя
const char * commandстрока команды
int nargs
количество входных параметров ($1, $2и т. д.)
Oid * argtypes
массив длиной nargs, содержащий
OIDтипов данных параметров
Datum * values
массив длиной nargs, содержащий фактические значения параметров
const char * nulls
массив длиной nargs, описывающий, какие из параметров имеют значение null
Если nulls имеет значение NULL то
SPI_cursor_open_with_args предполагает, что ни один из параметров не равен null. В противном случае каждый элемент массива nulls
должен иметь значение ' ' , если соответствующее значение параметра не равно null, или 'n' , если соответствующее значение параметра равно null. (В последнем случае фактическое значение в соответствующем элементе values не имеет значения.) Обратите внимание, что nulls не является текстовой строкой, а представляет собой просто массив: ему не требуется '\0' символ завершения.
bool read_onlytrue для выполнения в режиме «только чтение»
int cursorOptionsцелочисленная битовая маска параметров курсора; ноль обеспечивает поведение по умолчанию
Указатель на портал, содержащий курсор. Обратите внимание, что стандартное соглашение о возврате
ошибок отсутствует; о любой ошибке будет сообщено через elog.