SPI_execute_plan

SPI_execute_plan —执行由SPI_prepare准备的语句

Synopsis

int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                     bool read_only, long count)

Description

SPI_execute_plan执行由SPI_prepare或其同级之一准备的语句。 * read_only count *与SPI_execute具有相同的解释。

Arguments

  • SPIPlanPtr plan

    • 准备好的语句(由SPI_prepare返回)
  • Datum * values

    • 实际参数值的数组。长度必须与语句的参数个数相同。
  • const char * nulls

    • 一个数组,描述哪些参数为空。长度必须与语句的参数个数相同。

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

  • bool read_only

    • true用于只读执行
  • long count

    • 要返回的最大行数,或0无限制

Return Value

返回值与SPI_execute相同,并附加以下可能的错误(负)结果:

  • SPI_ERROR_ARGUMENT

    • 如果* plan NULL或无效,或者 count *小于 0
  • SPI_ERROR_PARAM

    • 如果* values NULL plan *是使用某些参数准备的

如果成功,则将SPI_processedSPI_tuptable设置为SPI_execute