SPI_cursor_parse_open#

SPI_cursor_parse_open

SPI_cursor_parse_open

SPI_cursor_parse_open — настройка курсора с использованием строки запроса и параметров

Синтаксис

Portal SPI_cursor_parse_open(const char *name,
                             const char *command,
                             const SPIParseOpenOptions * options)

Описание

SPI_cursor_parse_open настраивает курсор (внутренне, портал), который будет выполнять указанную строку запроса. Это сравнимо с SPI_prepare_cursor, за которым следует SPI_cursor_open_with_paramlist, за исключением того, что ссылки на параметры внутри строки запроса обрабатываются полностью путем предоставления объекта ParamListInfo.

Для однократного выполнения запроса следует предпочесть эту функцию перед SPI_prepare_cursor, за которой следует SPI_cursor_open_with_paramlist. Если одну и ту же команду нужно выполнить с разными параметрами, то в зависимости от стоимости повторного планирования и выгоды от пользовательских планов, один из методов может быть быстрее.

Объект options->params обычно должен помечать каждый параметр флагом PARAM_FLAG_CONST, так как для запроса всегда используется одноразовый план.

Входные данные параметра будут скопированы в портал курсора, поэтому их можно освободить, пока курсор все еще существует.

Аргументы

const char * name

имя портала или NULL для того, чтобы система выбрала имя

const char * command

строка команды

const SPIParseOpenOptions * options

структура, содержащая необязательные аргументы

Всегда обнуляйте всю структуру options перед заполнением нужных полей. Это гарантирует совместимость кода в будущем, так как любые добавленные поля в структуру будут заданы таким образом, чтобы сохранять обратную совместимость, если они равны нулю. В настоящее время доступны следующие поля options:

ParamListInfo params

структура данных, содержащая типы и значения параметров запроса; NULL, если нет

int cursorOptions

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

bool read_only

true для выполнения только для чтения

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

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