SPI_cursor_open_with_args

SPI_cursor_open_with_args — открывает курсор для запроса с параметрами

Синтаксис

Portal SPI_cursor_open_with_args(const char *name,
                                 const char *command,
                                 int nargs, Oid *argtypes,
                                 Datum *values, const char *nulls,
                                 bool read_only, int cursorOptions)

Описание

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_only

true для режима выполнения «только чтение»

int cursorOptions

битовая маска параметров курсора; 0 выбирает поведение по умолчанию

Возвращаемое значение

Указатель на портал, содержащий курсор. Заметьте, что соглашение о возврате ошибок отсутствует; все ошибки выдаются через elog.