SPI_cursor_open

SPI_cursor_open —使用使用SPI_prepare创建的语句设置游标

Synopsis

Portal SPI_cursor_open(const char * name, SPIPlanPtr plan,
                       Datum * values, const char * nulls,
                       bool read_only)

Description

SPI_cursor_open设置了一个游标(内部为门户),该游标将执行SPI_prepare准备的语句。这些参数与SPI_execute_plan的相应参数具有相同的含义。

使用游标而不是直接执行语句有两个好处。首先,可以一次检索几行结果,从而避免了返回很多行的查询的内存溢出。第二,门户可以超过当前的 C 函数(实际上,它可以生存到当前事务的末尾)。将门户网站名称返回给 C 函数的调用者,提供了一种返回行集作为结果的方法。

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

Arguments

如果* nulls NULL,则SPI_cursor_open假定没有参数为空。否则, nulls 数组的每个条目如果对应的参数值为非空,则应为' ';如果对应的参数值为 null,则应为'n'。 (在后一种情况下,相应的 values 条目中的实际值无关紧要.)请注意, nulls *不是文本字符串,而只是数组:它不需要'\0'终止符。

Return Value

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

上一章 首页 下一章