SPI_cursor_parse_open

SPI_cursor_parse_open — configura un cursor usando una cadena de consulta y parámetros

Synopsis

Portal SPI_cursor_parse_open(const char *name,
                             const char *command,
                             const SPIParseOpenOptions * options)

Descripción

SPI_cursor_parse_open configura un cursor (internamente, un portal) que ejecutará la cadena de consulta especificada. Esto es comparable a SPI_prepare_cursor seguido de SPI_cursor_open_with_paramlist, con la diferencia de que las referencias a parámetros dentro de la cadena de consulta se manejan por completo suministrando un objeto ParamListInfo.

Para la ejecución de una consulta única, esta función debe preferirse sobre SPI_prepare_cursor seguida de SPI_cursor_open_with_paramlist. 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.

El objeto options->params normalmente debería marcar cada parámetro con la bandera PARAM_FLAG_CONST, ya que siempre se utiliza un plan de un solo uso para la consulta.

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.

Argumentos

const char * name

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

const char * command

cadena de comando

const SPIParseOpenOptions * options

estructura que contiene argumentos opcionales

Los llamadores siempre deben rellenar con ceros toda la estructura options y luego completar los campos que deseen establecer. Esto garantiza la compatibilidad hacia adelante del código, ya que cualquier campo que se agregue a la estructura en el futuro se definirá para comportarse de manera compatible hacia atrás si es cero. Los campos de options actualmente disponibles son:

ParamListInfo params

estructura de datos que contiene los tipos y valores de los parámetros de la consulta; NULL si no hay ninguno

int cursorOptions

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

bool read_only

true para una ejecución de solo lectura

Valor de retorno

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