Documentation PostgreSQL 14.22 » Programmation serveur » Interface de programmation serveur » Fonctions d'interface » SPI_saveplan

Précédent | Niveau supérieur | Suivant
SPI_keepplan | Sommaire | SPI_register_relation

## 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.