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の名前を返すことで、結果として行セットを返す手段を提供します。
ポータルの名前、あるいは、システムに名前を決定させる場合はNULLです。
(SPI_prepareで返される)実行計画。
実パラメータ値の配列。 計画の引数の数と同じ長さでなければなりません。
どのパラメータがNULLであるかを示す配列。 計画の引数の数と同じ長さでなければなりません。 nはNULL値を表します。(values内の項目は無視されます。) 空白は非NULLの値を表します。(values内の項目は有効です。)
nulls が NULL の場合、SPI_curcor_openは全てのパラメータがNULLではないとみなします。
読み取りのみの実行の場合はtrue。