SPI_cursor_open_with_args — configura un cursor usando una consulta y 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)
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.
const char * name
nombre del portal, o NULL para permitir que el sistema
seleccione un nombre
const char * commandcadena 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_onlytrue para una ejecución de solo lectura
int cursorOptionsmáscara de bits entera de opciones de cursor; cero produce el comportamiento por defecto
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.