目次
SPI_prepare
により準備した文に必要とされる引数の数を返す
SPI_prepare
で準備された文で指定される引数のデータ型のOIDを返す
SPI_prepare
で準備された文がSPI_cursor_open
で使用できる場合にtrue
を返す
SPI_prepare
で準備された文を実行するSPI_prepare
で準備された文を実行するSPI_prepare
で準備された文を実行するSPI_prepare
で作成された文を使用したカーソルを設定するSPI_execute
や類似の関数によって生成された行セットを解放するThe <firstterm>Server Programming Interface</firstterm> (<acronym>SPI</acronym>) gives writers of user-defined <acronym>C</acronym> functions the ability to run <acronym>SQL</acronym> commands inside their functions or procedures. <acronym>SPI</acronym> is a set of interface functions to simplify access to the parser, planner, and executor. <acronym>SPI</acronym> also does some memory management. サーバプログラミングインタフェース(SPI)は、ユーザ定義のC関数が関数やプロシージャからSQLコマンドを実行する機能をユーザに提供します。 SPIはパーサ、プランナ、エグゼキュータへのアクセスを単純化したインタフェース関数の集合です。 また、SPIは多少のメモリ管理を行います。
The available procedural languages provide various means to execute SQL commands from functions. Most of these facilities are based on SPI, so this documentation might be of use for users of those languages as well. 利用可能な手続き言語は、関数からSQLコマンドを実行するための各種手段を提供します。 これらのほとんどは、SPIを基にしていますので、この文書はこれらの言語のユーザにとっても有用な場合があります。
Note that if a command invoked via SPI fails, then control will not be returned to your C function. Rather, the transaction or subtransaction in which your C function executes will be rolled back. (This might seem surprising given that the SPI functions mostly have documented error-return conventions. Those conventions only apply for errors detected within the SPI functions themselves, however.) It is possible to recover control after an error by establishing your own subtransaction surrounding SPI calls that might fail. コマンドがSPIの失敗を起こした場合、その制御はC関数には戻らないことに注意してください。 それどころか、プロシージャを実行していたトランザクションもしくは副トランザクションはロールバックされます。 (これはSPI関数のほとんどでエラーを返す規約があることから奇妙に思われるかもしれません。 しかし、こうした規約はSPI関数自身でエラーを検知した時にのみ適用されるものです。) 失敗する可能性があるSPI呼び出しを囲む副トランザクションを独自に用意することで、エラーの後の制御を戻すことができます。
<acronym>SPI</acronym> functions return a nonnegative result on
success (either via a returned integer value or in the global
variable <varname>SPI_result</varname>, as described below). On
error, a negative result or <symbol>NULL</symbol> will be returned.
SPI関数は成功時に非負の結果を(戻り値、もしくは後述のSPI_result
グローバル変数の中に)返します。
エラー時、負の結果もしくはNULL
を返します。
Source code files that use SPI must include the header file
<filename>executor/spi.h</filename>.
SPIを使用するソースコードファイルではexecutor/spi.h
ヘッダファイルをincludeしなければなりません。