Postgresql 中文操作指南

SPI_cursor_parse_open

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

Synopsis

Portal SPI_cursor_parse_open(const char *name,
                             const char *command,
                             const SPIParseOpenOptions * options)

Description

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 标志标记每个参数。

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

Arguments

  • const char * _name_

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

  • const char * _command_

    • command string

  • const SPIParseOpenOptions * _options_

    • struct containing optional arguments

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

  • ParamListInfo _params_

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

  • int _cursorOptions_

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

  • bool _read_only_

    • true for read-only execution

Return Value

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