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

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

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

SPI_prepare

SPI_prepare — 将你的过程连接到 SPI 管理器。

大纲

SPI_prepare(query, nargs, argtypes)

输入

query

查询字符串

nargs

输入参数的数量($1 ... $nargs —— 与 SQL 函数中相同)

argtypes

指向输入参数的类型 OID 列表的指针

输出

void *

指向执行计划(解析器+规划器+优化器)的指针

描述

SPI_prepare 创建并返回一个执行计划(解析器+规划器+优化器),但不执行该查询。 只应从已连接的过程中调用。

用法

nargs 是参数的数量($1 ... $nargs —— 与 SQL 函数中相同), 只有当查询中没有任何 $1 时,nargs 才可以为 0。

预备执行计划的执行有时会快得多,因此当同一条查询要执行很多次时, 此特性可能会很有用。

SPI_prepare 返回的计划只能在当前这次过程调用中 使用,因为 SPI_finish 会释放为计划分配的内存。 参见 SPI_saveplan。

成功时会返回一个非空指针。否则,将得到 NULL 计划。无论成功还是出错, SPI_result 都会被设成与 SPI_exec 返回值类似的值;但如果 query 为 NULL,或 nargs < 0,或 nargs > 0 且 argtypes 为 NULL,则会将其设为 → SPI_ERROR_ARGUMENT。

提交更正

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