SPI_cursor_parse_open — 使用查詢字串和引數設定遊標
Portal SPI_cursor_parse_open(const char *name
, const char *command
, const SPIParseOpenOptions *options
)
SPI_cursor_parse_open
設定一個遊標(內部是一個 portal),它將執行指定的查詢字串。這相當於先呼叫 SPI_prepare_cursor
再呼叫 SPI_cursor_open_with_paramlist
,不同之處在於查詢字串中的引數引用完全透過提供一個 ParamListInfo
物件來處理。
對於一次性查詢執行,應優先使用此函式,而不是先呼叫 SPI_prepare_cursor
再呼叫 SPI_cursor_open_with_paramlist
。如果需要使用許多不同的引數執行相同的命令,則取決於重新規劃的成本與定製計劃的好處,這兩種方法可能都更快。
通常,options->params
物件應為每個引數標記 PARAM_FLAG_CONST
標誌,因為該查詢始終使用一次性計劃。
傳入的引數資料將被複制到遊標的 portal 中,因此可以在遊標仍然存在時釋放這些資料。
const char * name
portal 的名稱,如果為 NULL
,則由系統選擇名稱
const char * command
command string
const SPIParseOpenOptions * options
包含可選引數的結構體
呼叫者應始終將整個 options
結構體清零,然後填充他們想要設定的欄位。這確保了程式碼的向前相容性,因為在未來新增到該結構體中的任何欄位都將被定義為如果它們為零時,則以向後相容的方式執行。目前可用的 options
欄位有:
ParamListInfo params
包含查詢引數型別和值的結構;如果沒有則為 NULL
int cursorOptions
遊標選項的整數位掩碼;零會產生預設行為
bool read_only
只讀執行時為 true
指向包含遊標的 portal 的指標。請注意,沒有錯誤返回約定;任何錯誤都將透過 elog
報告。
如果您在文件中發現任何不正確之處、與您在使用特定功能時的體驗不符之處或需要進一步澄清之處,請使用此表格來報告文件問題。