PostgreSQL Programmer's Guide
PrevNext

SPI_prepare

Name

SPI_prepare — は手続きを SPI マネージャに接続します 訳注:(これは明らかに間違い。正しくは、「実行プラン (parser+planner+optimizer) を生成します。 ただし、実行はしません」ということだと思います)

SPI_prepare(query, nargs, argtypes)

入力

query

問い合わせ文字列

nargs

入力パラメータの数(SQL 関数における $1 ... $nargs の数)

argtypes

入力引数へのOID 型のポインタのリスト

出力

void *

実行プラン (parser+planner+optimizer) へのポインタ

説明

SPI_prepare は実行プラン (parser+planner+optimizer) を生成して返却しますが、 問い合わせは実行しません。 接続済の手続きからのみ呼び出して下さい。

使い方

nargs は 引数の数(SQL 関数の $1 ... $nargs の数)で、引数のない問い合わ せに限り 0 となります。

生成済のプランを実行するのは非常に高速な場合もあります。 したがって、同じ問い合わせを何回も実行する場合に この機能が有効です。

SPI_finish がメモリを開放してしまうので、 SPI_prepare から返却されたプランは 現在起動中の手続き中でのみ使用できます。 SPI_saveplan参照。

成功すれば NULL 以外のポインタが返ります。 それ以外は NULL のプランが返ります。 どちらにしても、SPI_exec の返却値同様 SPI_result がセットされます。 ただし、問い合わせが NULL もしくは、nargs < 0 、もしくは nargs > 0 かつ argtypes が NULL の場合、 SPI_ERROR_ARGUMENT が返ります。


PrevHomeNext
SPI_execUpSPI_saveplan