受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

SPI_cursor_parse_open

SPI_cursor_parse_open — 使用查询字符串和参数设置游标

Synopsis

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_cursorSPI_cursor_open_with_paramlist 的组合。如果同一条命 令要用很多不同参数执行,两种方法孰快则取决于重新计划的代价与定制计划带 来的收益之间的权衡。

options->params 对象通常应当为每个参数都设置 PARAM_FLAG_CONST 标志,因为该查询总是使用一次性计划。

传入的参数数据会被复制到该游标的 portal 中,因此即使该游标仍然存在, 也可以释放这些参数数据。

参数

const char * name

portal 的名称,或为NULL以让系统选择名称

const char * command

命令字符串

const SPIParseOpenOptions * options

包含可选参数的结构

调用者应始终先将整个 options 结构清零,然后再填 写想设置的字段。这样可以保证代码的前向兼容性,因为未来添加到该结构中的 任何字段,都会被定义为在取零值时保持向后兼容。当前可用的 options 字段如下:

ParamListInfo params

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

int cursorOptions

整数形式的游标选项位掩码,零会导致默认行为

bool read_only

true 表示只读执行

返回值

指向包含该游标的 portal 的指针。注意这里没有错误返回约定, 任何错误都将通过elog报告。

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。