↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 6.3
历史版本。 PostgreSQL 6.3 已结束支持。 请参阅 当前版本手册.

SPI_execp

SPI_execp — 执行由 SPI_saveplan 准备或返回的计划

大纲

SPI_execp(plan,
values,
nulls,
tcount)

输入

void *plan

执行计划

Datum *values

实际参数值

char *nulls

描述哪些参数取 NULL 的数组

'n' 表示允许 NULL
' ' 表示不允许 NULL
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 准备的计划存储在安全内存中,使其不会被 SPI_finish 或事务管理器释放。

在当前版本的 Postgres 中,还无法把预备计划存储在系统目录中并在执行时从那里取出。这一点将在未来的版本中实现。作为权宜之计,可以在当前会话中该过程的后续调用里复用预备计划。使用 SPI_execp 执行这个保存的计划。

用法

如果 nulls 为 NULL,则 SPI_execp 假定所有值(如果有的话)都非 NULL。

注意

如果预备计划所引用的对象(关系、函数等)在会话期间被删除(由你的后端或另一个进程删除),那么对该计划执行 SPI_execp 的结果将是不可预知的。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.