SPI_prepare_extended — подготовить оператор, но пока не выполнять его
SPIPlanPtr SPI_prepare_extended(const char *command, const SPIPrepareOptions *options)
SPI_prepare_extended создаёт и возвращает подготовленный оператор для заданной команды, но не выполняет саму команду. Эта функция равнозначна SPI_prepare, но позволяет вызывающему управлять разбором ссылок на внешние параметры, а также другими аспектами разбора и планирования запросов.
const char * commandстрока команды
const SPIPrepareOptions * optionsструктура, содержащая необязательные аргументы
Структуру options всегда следует сначала полностью заполнять нулями, а затем уже задавать необходимые значения. Это гарантирует совместимость с будущими изменениями в коде: при добавлении в эту структуру любых новых полей нулевое значение будет определять старое поведение. Сейчас в options есть такие поля:
ParserSetupHook parserSetupФункция настройки обработчиков разбора
void * parserSetupArgаргумент для сквозной передачи в parserSetup
RawParseMode parseModeрежим для простого разбора; RAW_PARSE_DEFAULT (ноль) выбирает поведение по умолчанию
int cursorOptionsбитовая маска параметров курсора; 0 выбирает поведение по умолчанию
SPI_prepare_extended возвращает результат по тем же соглашениям, что и SPI_prepare.