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

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

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

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。

报告文档问题

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