★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

SPI_cursor_open

名前

SPI_cursor_open -- SPI_prepareで作成された計画を使用したカーソルを設定します。

概要

Portal SPI_cursor_open(const char * name, void * plan,
                       Datum * values, const char * nulls,
                       bool read_only)

説明

SPI_cursor_open は、SPI_prepareによって準備された計画を実行するカーソル(内部的にはポータル)を設定します。 このパラメータはSPI_execute_planの対応するパラメータと同じ意味を持ちます。

計画を直接実行するのではなくカーソルを使用することには2つの利点があります。 1つ目は、結果行を1度に少なく取り出し、多くの行を返す問い合わせでのメモリの過使用を防ぐことができる点です。 2つ目は、ポータルは現在のプロシージャの外部でも有効である点です。(実際、現在のトランザクションの終端まで有効とすることができます。) プロシージャの呼び出し元にportalの名前を返すことで、結果として行セットを返す手段を提供します。

引数

const char * name

ポータルの名前、あるいは、システムに名前を決定させる場合はNULLです。

void * plan

(SPI_prepareで返される)実行計画。

Datum * values

実パラメータ値の配列。 計画の引数の数と同じ長さでなければなりません。

const char * nulls

どのパラメータがNULLであるかを示す配列。 計画の引数の数と同じ長さでなければなりません。 nはNULL値を表します。(values内の項目は無視されます。) 空白は非NULLの値を表します。(values内の項目は有効です。)

nullsNULL の場合、SPI_curcor_openは全てのパラメータがNULLではないとみなします。

bool read_only

読み取りのみの実行の場合はtrue

戻り値

カーソルを含むポータルへのポインタ。 エラーの場合はNULLです。