Documentation PostgreSQL 9.3.25 > Programmation serveur > Interface de programmation serveur > Gestion de la mémoire > SPI_freetuptable | |
SPI_freetuple | SPI_freeplan |
SPI_freetuptable — libère une série de lignes créée par SPI_execute ou une fonction semblable
void SPI_freetuptable(SPITupleTable * tuptable)
SPI_freetuptable libère une série de lignes créée auparavant par une fonction d'exécution de commandes SPI, tel que SPI_execute. Par conséquent, cette fonction est souvent appelée avec la variable globale SPI_tupletable comme argument.
Cette fonction est utile si une procédure SPI a besoin d'exécuter de multiples commandes et ne veut pas garder les résultats de commandes précédentes en mémoire jusqu'à sa fin. Notez que toute série de lignes non libérées est libérée quand même lors de SPI_finish. De plus, si une sous-transaction est commencée puis annulée lors de l'exécution d'une procédure SPI, SPI libère automatiquement tous les ensembles de lignes créés lors de l'exécution de la sous-transaction.
À partir de PostgreSQL™ 9.3, SPI_freetuptable contient la logique de sécurité pour protéger contre les demandes dupliquées de suppression à partir du même ensemble de lignes. Avec les versions précédentes, les suppressions dupliquées auraient amenées à des crashs.