Rb Cafe » Postgres » Documentation PostgreSQL 13.10 » Programmation serveur » Interface de programmation serveur » Gestion de la mémoire » SPI_freetuptable

SPI_freetuptable

SPI_freetuptable — libère une série de lignes créée par SPI_execute ou une fonction semblable

Synopsis

void SPI_freetuptable(SPITupleTable * tuptable)

Description

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 fonction C 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 fonction C 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.

Arguments

SPITupleTable * tuptable

pointeur vers la série de lignes à libérer, ou NULL pour ne rien faire