Name
SPI_execp -- 执行一个从
SPI_prepare
来的规划
Synopsis
SPI_execp(
plan
,
values
,
nulls
,
tcount
)
输入
-
void *
plan
-
执行规划
-
Datum *
values
-
实际参数值
-
char *
nulls
-
描述哪个参数获得 NULL 值的数组
n
表示 NULL (忽略 values[] 项) |
空白表示非 NULL (values[] 项有效) |
-
int
tcount
-
将被执行的规划的记录数
输出
-
int
-
返回与
SPI_exec
一样的值以及
SPI_ERROR_ARGUMENT
如果
plan
是 NULL 或
tcount
< 0 ,
返回此值 |
SPI_ERROR_PARAM
如果
values
是 NULL 并且所准备的
plan
带有一些参数. |
-
SPI_tuptable
-
如果成功,则象
SPI_exec
一样初始化
-
SPI_processed
-
如果成功,则象
SPI_exec
一样初始化
描述
SPI_execp
执行一个由
SPI_prepare
准备的规划,
tcount
的含义和
SPI_exec
里的一样.
目前的
PostgreSQL
版本不能把计划好的规划存储在系统表里并从中获取它们执行.
这个(特性)将在未来的版本中实现.做为绕开的方法,
目前的版本可以在当前会话中随后击活的过程中重新使用准备好的规划.
用
SPI_execp
执行这些保存了的规划.
用法
如果
nulls
是 NULL 那么
SPI_execp
假设所有参数(如果有的话)都是 NOT NULL.
注意:
如果已准备的规划参考的对象之一 (一个关系,函数,等.)
在你的会话过程中被删除(被你的后端或其他过程)
那么对此规划的
SPI_execp
执行结果将不可预料.
|