SPI_cursor_open_with_args — 問い合わせとパラメータを使ってカーソルを設定する
Portal SPI_cursor_open_with_args(const char *name, const char *command, intnargs, Oid *argtypes, Datum *values, const char *nulls, boolread_only, intcursorOptions)
SPI_cursor_open_with_argsは特定の問い合わせを実行するカーソル(内部的にはポータル)を設定します。
ほとんどのパラメータはSPI_prepare_cursorとSPI_cursor_openに対応するパラメータと同じ意味を持っています。
1回限りの問い合わせ実行に対しては、後にSPI_cursor_openが続いたSPI_prepare_cursorよりも、この関数を選ぶべきです。
多くの異なったパラメータを持つ同一のコマンドを実行する場合、再計画のコストと独自計画による利益に依存して、どちらか一方の方法がより早くなります。
渡されたパラメータデータはカーソルのポータルにコピーされますので、カーソルが存在している間は解放することができます。
const char * name
ポータルの名前、またはシステムに名前を選択させるNULL
const char * commandコマンド文字列
int nargs
入力パラメータ($1、$2など)の数
Oid * argtypes
パラメータのデータ型のOIDを含む、nargs長の配列
Datum * values
実パラメータ値を含む、nargs長の配列
const char * nulls
どのパラメータがnullかを記述する、nargs長の配列
nullsがNULLであれば、SPI_cursor_open_with_argsはどのパラメータもnullでないとみなします。
さもなければ、nulls配列の各項目は、対応するパラメータが非NULLならば' '、対応するパラメータがNULLならば'n'です。
(後者の場合、values内の対応する値は注意されません。)
nullsはテキスト文字列ではなく単なる配列であることに注意してください。
'\0'終端は必要ありません。
bool read_only
読み取りのみの実行の場合true
int cursorOptionsカーソルオプションの整数ビットマスク。ゼロの場合はデフォルトの動作
カーソルを含んだポータルへのポインタ。
エラーを返す規約がないことに注意してください。
すべてのエラーはelogで報告されます。