SPI_commit, SPI_commit_and_chain — 現在のトランザクションをコミットします。
void SPI_commit(void)
void SPI_commit_and_chain(void)
SPI_commit
は現在のトランザクションをコミットします。
これはSQLコマンドのCOMMIT
を実行することと概ね同等です。
トランザクションがコミットされた後には、新しいトランザクションが自動的にデフォルトのトランザクションの特性を使って開始されます。ですので、呼び出し元はSPIを使い続けることができます。
コミット中に失敗した場合、現在のトランザクションは代わりにロールバックされ、新しいトランザクションが開始され、その後、通常通りエラーが発生します。
SPI_commit_and_chain
は同じですが、新しいトランザクションは、SQLコマンドCOMMIT AND CHAIN
と同じように、直前に完了したものと同じトランザクションの特性で開始されます。
これらの関数はSPI接続がSPI_connect_ext
の呼び出しで非原子的と設定されている場合のみ、実行できます。