SPI_cursor_open

Name

SPI_cursor_open -- 用 SPI_prepare 建立的規劃設置一個游標

Synopsis

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參數具有相同的含義。

使用游標而不是直接執行規劃有兩個優點。首先,結果行可以每次檢索一小部分, 避免那些返回大量資料行的查詢造成的內存缺乏。 第二,一個入口可以在目前過程之外存貨(實際上,它可以活到目前交易的結尾)。 給過程的調用者返回一個入口名是一種返回行結果集的方法。

參數

const char * name

入口的名字,或者是用 NULL,讓系統選擇一個名字

void * plan

執行規劃(SPI_prepare 返回的東西)

Datum * values

一個實際參數值的數組。必須和規劃的參數個數等長。

const char *nulls

一個描述那些參數是空值的數組。必須和規劃的參數個數等長。 n 資料表示一個空值(在 values 裡對應的元素將被忽略); 一個空白資料表示一個非空值(在 values 裡的條目是有效的)。

如果 nullsNULL 那麼 SPI_cursor_open 假設沒有參數是空。

bool read_only

對於只讀的執行為 true

返回值

指向包含入口游標的指針,或者是錯誤的時候是 NULL

成功時, SPI_processedSPI_tuptable 的設置與 SPI_execute 同。