PostgreSQLLa base de données la plus sophistiquée au monde.

SPI_cursor_open

SPI_cursor_open — met en place un curseur en utilisant un plan créé avec SPI_prepare

Synopsis

Portal SPI_cursor_open(const char * name, void * plan,
Datum * values, const char * nulls,
bool read_only)

Description

SPI_cursor_open met en place un curseur (en interne, un portail) qui lancera un plan préparé par SPI_prepare. Les paramètres ont la même signification que les paramètres correspondant à SPI_execute_plan.

Utiliser un curseur au lieu de lancer le plan directement a deux avantages. Premièrement, les lignes de résultats peuvent être récupérées un certain nombre à la fois, évitant la saturation de mémoire pour les requêtes qui retournent trop de lignes. Deuxièmement, un portail peut survivre à la procédure courante (elle peut, en fait, vivre jusqu'à la fin de la transaction courante). Renvoyer le nom du portail à l'appelant de la procédure donne un moyen de retourner une série de ligne en tant que résultat.

Arguments

const char * name

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

void * plan

plan d'exécution (retourné par SPI_prepare)

Datum * values

Un tableau des valeurs de paramètres actuelles. Doit avoir la même longueur que le nombre d'arguments du plan.

const char *nulls

Un tableau décrivant quels paramètres sont NULL. Doit avoir la même longueur que le nombre d'arguments du plan. n indique une valeur NULL (l'entrée correspondante dans values sera ignorée) ; un espace indique une valeur non NULL (l'entrée correspondante dans values est valide).

Si nulls est NULL, alors SPI_cursor_open part du principe qu'aucun paramètre n'est nul.

bool read_only

true pour les exécutions en lecture seule

Valeur de retour

Pointeur vers le portail contenant le curseur ou NULL en cas d'erreur