SPI_cursor_open_with_args

SPI_cursor_open_with_args — configura um cursor usando uma consulta e parâmetros

Sinopse

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)

Descrição

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.

Argumentos

const char * name

nome para o portal, ou NULL para permitir que o sistema selecione o nome

const char * command

cadeia 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_only

true para execução de leitura-apenas

int cursorOptions

número inteiro, máscara de bits das opções do cursor; zero produz o comportamento padrão

Valor retornado

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.