版本:
目录导航

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_cursor_open_with_paramlist跟随的SPI_prepare_cursor。 如果同样的命令带着很多不同的参数被执行,二者中的某一个方法也许会更快,取决于重新计划的开销与定制计划的收益的对比。

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