SPI_saveplan
名前
SPI_saveplan -- 計画を保存する
概要
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
説明
SPI_saveplan
は渡された(SPI_prepare
で準備された)計画をSPI_finish
とトランザクションマネージャで解放されないメモリ内に保存します。
そして、保存した計画のポインタを返します。
これは、現在のセッションにおける、その後のプロシージャの呼び出しで準備された計画を再利用できる機能を提供します。
戻り値
保存された計画へのポインタ。
失敗した場合はNULLです。
エラー時、SPI_resultは以下のように設定されます。
- SPI_ERROR_ARGUMENT
planがNULL、または無効な場合
- SPI_ERROR_UNCONNECTED
未接続のプロシージャから呼び出された場合
注意
渡される計画は解放されません。
ですので、SPI_finish
を行うまでのメモリリークを防ぎたければSPI_freeplan
を実行してください。
準備された計画で参照されるオブジェクト(テーブル、関数など)のいずれかが削除または再定義された場合、その後にSPI_execute_plan
を実行すると、失敗するか計画当初に示される結果と異なる結果が返される可能性があります。