SPI_cursor_parse_open — configura um cursor usando uma cadeia de caracteres de consulta e parâmetros
Portal SPI_cursor_parse_open(const char *name, const char *command, const SPIParseOpenOptions *options)
A função SPI_cursor_parse_open configura um
cursor (internamente, um portal) que executa a cadeia de caracteres
de consulta especificada.
É comparável à função SPI_prepare_cursor seguida
por SPI_cursor_open_with_paramlist, exceto que
as referências a parâmetros dentro da cadeia de caracteres da consulta
são tratadas fornecendo um objeto ParamListInfo.
Para a execução de uma única consulta, deve ser preferida esta função
com relação a SPI_prepare_cursor seguida por
SPI_cursor_open_with_paramlist.
Se o mesmo comando for executado com muitos parâmetros diferentes,
qualquer um dos métodos poderá ser mais rápido, dependendo do custo
do replanejamento versus o benefício dos planos personalizados.
O objeto options->params deve normalmente
marcar cada parâmetro com o sinalizador
PARAM_FLAG_CONST, já que é sempre usado um plano
único para a consulta.
Os dados dos parâmetros passados são copiados para o portal do cursor, para poderem ser liberados enquanto o cursor ainda existir.
const char * name
nome para o portal, ou NULL para permitir
que o sistema selecione o nome
const char * commandcadeia de caracteres de comando
const SPIParseOpenOptions * optionsestrutura contendo argumentos opcionais
Os chamadores devem sempre zerar toda a estrutura de
options e, em seguida, preencher os campos
que desejam definir.
Isto garante a compatibilidade futura do código, uma vez que quaisquer
campos adicionados à estrutura no futuro serão definidos para se
comportarem de maneira compatível com versões anteriores se forem zero.
Os campos de options disponíveis no momento são:
ParamListInfo params
estrutura de dados contendo os tipos de dados e valores dos
parâmetros; NULL se nenhum
int cursorOptionsnúmero inteiro, máscara de bits das opções do cursor; zero produz o comportamento padrão
bool read_onlytrue para execução de leitura-apenas
Ponteiro para o portal que contém o cursor.
Note não haver convenção de retorno de erro; qualquer erro será
relatado via elog.