SPI_prepare

Name

SPI_prepare — 将你的过程与 SPI 管理器连接�
SPI_prepare(query, nargs, argtypes)

输入

query

查询字符串

nargs

输入的参数个数�$1 ... $nargs �� SQL�函数里一样�

argtypes

指�输入参数的类型为 OID 的指针数组

输出

void *

指�一个执行规划的指针�分析器+规划器+优化器�

描述

SPI_prepare 创建和返回一个执行规划�分析器+规划器+优化器�但是不执行查询� 应该只从一个已联接的过程部调用�

用法

nargs 是参数个数�$1 ... $nargs - � SQL�函数里一样�� 并且 nargs 可以是 0 ��只有在查询里没有任何 $1 时是这样�

准备好的执行规划的执行速度有时快很多� 所以如果某个查询会被执行多次时这个特性可能会很有用�

SPI_prepare 返回的规划可能只能被用于目前的过程� 因为 SPI_finish 将释放为规划分配的存储器�参考 SPI_saveplan.

如果成功�将返回一个非空的指针�否则�你会得到一个 NULL�空�的规划� 不管那种情况 SPI_result 都将�SPI_exec 返回的值那样被设置� 除非它被设置为 SPI_ERROR_ARGUMENT ��因为查询是 NULL 或 nargs < 0 或nargs > 0 && argtypes 是 NULL�