Documentation PostgreSQL 9.5.25 > Programmation serveur > Interface de programmation serveur > Fonctions d'interface > SPI_saveplan | |
SPI_keepplan | Fonctions de support d'interface |
SPI_saveplan — sauvegarde une requête préparée
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
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 procédure dans la session courante.
Pointeur vers la requête copiée ; NULL en cas d'échec. En cas d'erreur, SPI_result est positionnée comme suit :
si plan est NULL ou invalide
si appelé d'une procédure non connectée
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.