バージョンごとのドキュメント一覧

SPI_freetuptable

SPI_freetuptable <refpurpose>free a row set created by <function>SPI_execute</function> or a similar function</refpurpose> SPI_executeや類似の関数によって生成された行セットを解放する

概要

void SPI_freetuptable(SPITupleTable * tuptable)

説明

<title>Description</title>

<function>SPI_freetuptable</function> frees a row set created by a prior SPI command execution function, such as <function>SPI_execute</function>. Therefore, this function is often called with the global variable <varname>SPI_tuptable</varname> as argument. SPI_freetuptableは、以前にSPI_executeなどのSPIコマンド実行関数によって作成された行セットを解放します。 そのため、この関数はよくSPI_tuptableグローバル変数を引数として呼び出されます。

This function is useful if an SPI-using C function needs to execute multiple commands and does not want to keep the results of earlier commands around until it ends. Note that any unfreed row sets will be freed anyway at <function>SPI_finish</function>. Also, if a subtransaction is started and then aborted within execution of an SPI-using C function, SPI automatically frees any row sets created while the subtransaction was running. この関数はSPIプロシージャが複数のコマンドを実行する必要があり、かつ、初期のコマンドの結果を終わりまで保持したくない場合に有用です。 解放されない行セットは、SPI_finish時に全て解放されることに注意してください。 また副トランザクションが始まった後SPIプロシージャの実行中にアボートした場合、SPIは自動的に副トランザクションが実行中に作成された行セットすべてを解放します。

Beginning in <productname>PostgreSQL</productname> 9.3, <function>SPI_freetuptable</function> contains guard logic to protect against duplicate deletion requests for the same row set. In previous releases, duplicate deletions would lead to crashes. PostgreSQL 9.3からSPI_freetuptableには同一行セットに対して重複する削除要求から保護する保護ロジックが含まれます。 過去のリリースでは重複する削除がクラッシュをもたらすかもしれませんでした。

引数

<title>Arguments</title>
SPITupleTable * tuptable

pointer to row set to free, or NULL to do nothing 解放する行セットへのポインタ。または何も行わないことを示すNULL。