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_onlytrue表示只读执行
指向包含该游标的 portal 的指针。注意这里没有错误返回约定,
任何错误都将通过elog报告。