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
)
<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
には同一行セットに対して重複する削除要求から保護する保護ロジックが含まれます。
過去のリリースでは重複する削除がクラッシュをもたらすかもしれませんでした。
SPITupleTable * tuptable
pointer to row set to free, or NULL to do nothing 解放する行セットへのポインタ。または何も行わないことを示すNULL。