SPI_saveplan — sauvegarde un plan
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
SPI_saveplan sauvegarde un plan validé (préparé par SPI_prepare) dans une zone de mémoire qui ne sera pas libérée par SPI_finish et par le gestionnaire de transactions et retourne le pointeur vers le plan sauvegardé. Ceci vous donne la possibilité de réutiliser les plans préparés lors des invocations suivantes de votre procédure dans la session courante.
Pointeur vers le plan sauvegardé ; 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
Le plan passé n'est pas libéré, donc vous pouvez souhaiter exécuter SPI_freeplan sur ce dernier pour éviter des pertes mémoire jusqu'à SPI_finish.
Si l'un des objets (une table, une fonction, etc.) référencés par le plan préparé est supprimé ou redéfini, alors les exécutions futures de SPI_execute_plan pourrait échouer ou renvoyer des résultats différents de ce que le plan indique initialement.