SPI_cursor_parse_open — 使用查询字符串和参数设置游标
Portal SPI_cursor_parse_open(const char *name
, const char *command
, const SPIParseOpenOptions *options
)
SPI_cursor_parse_open
建立一个游标(内部的,一个门户) ,将执行指定的查询字符串。
这可以与由SPI_cursor_open_with_paramlist
跟随的SPI_prepare_cursor
相比较,
除了查询字符串内参数引用,是通过供应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
报告。