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