SPI_cursor_open_with_args — configura um cursor usando uma consulta e parâmetros
Portal SPI_cursor_open_with_args(const char *name, const char *command, intnargs, Oid *argtypes, Datum *values, const char *nulls, boolread_only, intcursorOptions)
A função SPI_cursor_open_with_args configura um
cursor (internamente, um portal) que executa a consulta especificada.
A maioria dos parâmetros tem o mesmo significado que os parâmetros
correspondentes para as funções SPI_prepare_cursor
e SPI_cursor_open.
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.
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.
Os dados dos parâmetros passados são copiados para o portal do cursor, para poderem ser liberados enquanto o cursor ainda existir.
Esta função agora está em obsolescência em favor de
SPI_cursor_parse_open, que fornece funcionalidade
equivalente usando uma API mais moderna para lidar
com parâmetros de consulta.
const char * name
nome para o portal, ou NULL para permitir que o
sistema selecione o nome
const char * commandcadeia de caracteres de comando
int nargs
número de parâmetros de entrada
($1, $2, etc.)
Oid * argtypes
matriz de comprimento nargs, contendo os
OIDs dos tipos de dados dos parâmetros
Datum * values
matriz de comprimento nargs,
contendo os valores dos parâmetros
const char * nulls
matriz de comprimento nargs,
descrevendo quais parâmetros são nulos
Se o parâmetro nulls for NULL,
então a função SPI_cursor_open_with_args
assume que nenhum parâmetro é nulo.
Caso contrário, cada entrada na matriz nulls
deverá ser ' ' se o valor do parâmetro
correspondente não for nulo, ou 'n' se o valor
do parâmetro correspondente for nulo.
(Neste último caso, o valor real na entrada correspondente em
values não importa.)
Note que nulls não é uma cadeia de caracteres
de texto, e sim uma matriz:
não há necessidade do terminador '\0'.
bool read_onlytrue para execução de leitura-apenas
int cursorOptionsnúmero inteiro, máscara de bits das opções do cursor; zero produz o comportamento padrão
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.