历史版本。 PostgreSQL 6.5 已结束支持。 请参阅 当前版本手册.
大纲
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。