Name
SPI_execp -- 执行一个
SPI_prepare 准备的查询规划
Synopsis
int SPI_execp(void * plan, Datum * values, const char * nulls, int count)
描述
SPI_execp 执行一个 SPI_prepare 准备的规划。
tcount 的含义和 SPI_exec 里面的相同。
参数
- void * plan
执行规划(SPI_prepare 返回的东西)
- Datum *values
实际的参数值
- const char * nulls
一个描述哪个参数是空的数组。n 表示一个空值(在 values 里面对应的条目将被忽略);
一个空格表示一个非空值(在 values 里对应条目是有效的)。
如果 nulls 是 NULL,那么 SPI_execp 就认为没有参数是空。
- int count
查询要执行的行数
返回值
返回值和 SPI_exec 的一样或者是下面之一:
- SPI_ERROR_ARGUMENT
如果 plan 是 NULL 或者 count 小于 0
- SPI_ERROR_PARAM
如果 values 是 NULL 而 plan 准备了一些参数
成功时,
SPI_processed 和
SPI_tuptable 的设置和
SPI_exec 里一样。
注意
如果准备好了的规划引用的一个对象(表,函数,等等。)在会话过程中被删除,
那么 SPI_execp 对此规划的执行结果将不可预料。