支持的版本: 当前 (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 设置一个游标(内部是一个门户),它将执行指定的查询字符串。这与 SPI_prepare_cursor 之后跟着 SPI_cursor_open_with_paramlist 类似,不同之处在于查询字符串中的参数引用完全由提供 ParamListInfo 对象来处理。

对于一次性查询执行,此函数应该优先于 SPI_prepare_cursor 之后跟着 SPI_cursor_open_with_paramlist。如果要使用许多不同的参数执行相同的命令,那么这两种方法都可能更快,具体取决于重新计划的成本与自定义计划的好处。

由于查询总是使用一次性计划,所以 options->params 对象通常应该用 PARAM_FLAG_CONST 标志标记每个参数。

传入的参数数据将被复制到游标的门户中,因此在游标仍然存在时可以释放它。

参数

const char * name

门户的名称,或 NULL 以让系统选择名称

const char * command

命令字符串

const SPIParseOpenOptions * options

包含可选参数的结构体

调用者应该始终将整个 options 结构体清零,然后填充他们想要设置的任何字段。这确保了代码的向前兼容性,因为未来添加到结构体中的任何字段都将被定义为在为零时向后兼容。当前可用的 options 字段是

ParamListInfo params

包含查询参数类型和值的数据结构;如果没有则为 NULL

int cursorOptions

游标选项的整数位掩码;零产生默认行为

bool read_only

为只读执行时为 true

返回值

指向包含游标的门户的指针。请注意,没有错误返回约定;任何错误都将通过 elog 报告。

提交更正

如果您在文档中看到任何不正确、与您特定功能的使用体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。