↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 6.5 已于 2004 年 6 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

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 的结果将是不可预知的。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。