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

提交更正

如果您在文档中发现任何不正确之处、与您在使用特定功能时的体验不符之处或需要进一步澄清之处,请使用此表格来报告文档问题。