目次
SPI_prepare
により準備した文に必要とされる引数の数を返す
SPI_prepare
で準備された文で指定される引数のデータ型のOIDを返す
SPI_prepare
で準備された文がSPI_cursor_open
で使用できる場合にtrue
を返す
SPI_prepare
で準備された文を実行するSPI_prepare
で準備された文を実行するSPI_prepare
で作成された文を使用したカーソルを設定するSPI_execute
や類似の関数によって生成された行セットを解放するサーバプログラミングインタフェース(SPI)は、ユーザ定義のC関数からSQL問い合わせを実行する機能をユーザに提供します。 SPIはパーサ、プランナ、エクゼキュータへのアクセスを単純化したインタフェース関数の集合です。 また、SPIは多少のメモリ管理を行います。
利用可能な手続き言語は、関数からSQLコマンドを実行するための各種手段を提供します。 これらのほとんどは、SPIを基にしていますので、この文書はこれらの言語のユーザにとっても有用な場合があります。
コマンドがSPIの失敗を起こした場合、その制御はC関数には戻らないことに注意してください。 それどころか、プロシージャを実行していたトランザクションもしくは副トランザクションはロールバックされます (これはSPI関数のほとんどでエラーを返す規約があることから奇妙に思われるかもしれません。 しかし、こうした規約はSPI関数自身でエラーを検知した時にのみ適用されるものです)。 失敗する可能性があるSPI呼び出しを囲む副トランザクションを独自に用意することで、エラーの後の制御を戻すことができます。
SPI関数は成功時に非負の結果を(戻り値、もしくは後述のSPI_result
グローバル変数の中に)返します。
エラー時、負の結果もしくはNULL
を返します。
SPIを使用するソースコードファイルではexecutor/spi.h
ヘッダファイルをincludeしなければなりません。