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 执行结果将不可预料.