SPI_cursor_open_with_args

SPI_cursor_open_with_args — configura un cursor usando una consulta y parámetros

Synopsis

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)

Descripción

SPI_cursor_open_with_args configura un cursor (internamente, un portal) que ejecutará la consulta especificada. La mayoría de los parámetros tienen los mismos significados que los parámetros correspondientes de SPI_prepare_cursor y SPI_cursor_open.

Para la ejecución de una consulta de una sola vez, esta función debe preferirse sobre SPI_prepare_cursor seguido de SPI_cursor_open. Si el mismo comando se va a ejecutar con muchos parámetros diferentes, cualquiera de los dos métodos podría ser más rápido, dependiendo del costo de volver a planificar frente al beneficio de los planes personalizados.

Los datos de los parámetros pasados se copiarán en el portal del cursor, por lo que se pueden liberar mientras el cursor aún exista.

Esta función ahora está obsoleta en favor de SPI_cursor_parse_open, que proporciona una funcionalidad equivalente utilizando una API más moderna para manejar los parámetros de la consulta.

Argumentos

const char * name

nombre del portal, o NULL para permitir que el sistema seleccione un nombre

const char * command

cadena de comando

int nargs

número de parámetros de entrada ($1, $2, etc.)

Oid * argtypes

un array de longitud nargs que contiene los OID de los tipos de datos de los parámetros

Datum * values

un array de longitud nargs que contiene los valores reales de los parámetros

const char * nulls

un array de longitud nargs que describe qué parámetros son nulos

Si nulls es NULL, entonces SPI_cursor_open_with_args asume que ningún parámetro es nulo. De lo contrario, cada entrada del array nulls debería ser ' ' si el valor del parámetro correspondiente no es nulo, o 'n' si el valor del parámetro correspondiente es nulo. (En este último caso, el valor real en la entrada correspondiente de values no importa). Tenga en cuenta que nulls no es una cadena de texto, solo un array: no necesita un terminador '\0'.

bool read_only

true para una ejecución de solo lectura

int cursorOptions

máscara de bits entera de opciones de cursor; cero produce el comportamiento por defecto

Valor de retorno

Puntero al portal que contiene el cursor. Tenga en cuenta que no hay una convención de retorno de error; cualquier error se reportará a través de elog.