2025年9月25日: PostgreSQL 18 釋出!
支援版本:當前18)/ 17 / 16 / 15 / 14
開發版本:devel

SPI_cursor_parse_open

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 報告。

提交更正

如果您在文件中發現任何不正確之處、與您在使用特定功能時的體驗不符之處或需要進一步澄清之處,請使用此表格來報告文件問題。