Rb Cafe » Postgres » Documentation PostgreSQL 13.10 » Programmation serveur » Interface de programmation serveur » Fonctions d'interface » SPI_saveplan

SPI_saveplan

SPI_saveplan — sauvegarde une requête préparée

Synopsis

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

Description

SPI_saveplan copie une instruction passée (préparée par SPI_prepare) en mémoire qui ne serait pas libérée par SPI_finish ou par le gestionnaire de transactions, et renvoie un pointeur vers l'instruction copiée. Cela vous donne la possibilité de réutiliser des instructions préparées dans les appels suivants de votre fonction C dans la session courante.

Arguments

SPIPlanPtr plan

la requête préparée à sauvegarder

Valeur de retour

Pointeur vers la requête copiée ; NULL en cas d'échec. En cas d'erreur, SPI_result est positionnée comme suit :

SPI_ERROR_ARGUMENT

si plan est NULL ou invalide

SPI_ERROR_UNCONNECTED

si appelé d'une fonction C non connectée

Notes

La requête passée n'est pas libérée, donc vous pouvez souhaiter exécuter SPI_freeplan sur ce dernier pour éviter des pertes mémoire jusqu'à SPI_finish.

Dans la plupart des cas, SPI_keepplan est préférée à cette fonction car elle accomplit largement le même résultat sans avoir besoin de copier physiquement la structure de données des instructions préparées.