PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 15.6 » Programmation serveur » Interface de programmation serveur » Fonctions d'interface » SPI_cursor_parse_open

SPI_cursor_parse_open

SPI_cursor_parse_open — provisionne un curseur en utilisant une requête sous forme chaîne et des paramètres

Synopsis

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

Description

La fonction SPI_cursor_parse_open provisionne un curseur (en interne, un portail) qui exécutera une requête spécifiée dans une chaine. Elle est comparable à l'appel de SPI_prepare_cursor suivie de SPI_cursor_open_with_paramlist, à l'exception que les références des paramètres dans la chaine de la requête sont entièrement gérées en fournissant un objet ParamListInfo.

Pour une exécution unique d'une requête, cette fonction devrait être préférée à l'appel de SPI_prepare_cursor suivie par SPI_cursor_open_with_paramlist. Si la même commande doit être exécutée avec de nombreux paramètres différents, l'une ou l'autre méthode pourrait être plus rapide, en fonction du coût de recalcul du plan par rapport aux bénéfices des plans personnalisés.

L'objet options->params doit normalement marqué chaque paramètre avec le drapeau PARAM_FLAG_CONST, comme un plan unique est toujours utilisé par la requête.

Le paramètre passée en entrée sera copié dans le portail du curseur, ainsi il peut être libéré alors que le curseur existe toujours.

Arguments

const char * name

Nom du portail, ou NULL pour laisser le système choisir un nom

const char * command

Chaîne de la commande

const SPIParseOpenOptions * options

Structure contenant les arguments optionnels

Les appelants doivent toujours mettre à zéro la structure entière options, puis remplir les champs nécessaires à affecter. Ceci assure la compatibilité ascendante du code, comme tout champ ajouté à la structure dans le futur sera défini comme rétro-compatible s'il est mis à zéro. Les champs de options actuellement disponibles sont :

ParamListInfo params

Structure de données contenant les types et valeurs de paramètres de la requête ; NULL si aucun

int cursorOptions

Masque de bits entiers des options de curseur ; zéro génère le comportement par défaut

bool read_only

true pour une exécution en lecture seule

Valeur de retour

Pointeur de portail contenant le curseur. Notez qu'il n'y a pas de convention de retour d'erreur ; n'importe quelle erreur sera affichée via elog.