SPI_freetuptable — SPI_execute
や類似の関数によって生成された行セットを解放する
void SPI_freetuptable(SPITupleTable * tuptable
)
SPI_freetuptable
は、以前にSPI_execute
などのSPIコマンド実行関数によって作成された行セットを解放します。
そのため、この関数はよくSPI_tuptable
グローバル変数を引数として呼び出されます。
この関数はSPIプロシージャが複数のコマンドを実行する必要があり、かつ、初期のコマンドの結果を終わりまで保持したくない場合に有用です。
解放されない行セットは、SPI_finish
時に全て解放されることに注意してください。
また副トランザクションが始まった後SPIプロシージャの実行中にアボートした場合、SPIは自動的に副トランザクションが実行中に作成された行セットすべてを解放します。
PostgreSQL 9.3からSPI_freetuptable
には同一行セットに対して重複する削除要求から保護する保護ロジックが含まれます。
過去のリリースでは重複する削除がクラッシュをもたらすかもしれませんでした。
SPITupleTable * tuptable
解放する行セットへのポインタ。または何も行わないことを示すNULL。