SPI_saveplan

Name

SPI_saveplan — 保存传递进来的规划
SPI_saveplan(plan)

输入

void *query

传入的规划

输出

void *

执行规划定位�如果成功返回 NULL�

SPI_result

SPI_ERROR_ARGUMENT 如果规划是 NULL�返回此值
SPI_ERROR_UNCONNECTED 如果过程没有联接�返回此值

描述

SPI_saveplan 把一个由 SPI_prepare 准备的规划存储在安全的存储器中� 以避免被 SPI_finish 或事务管理器释放�

目前的 Postgres 版本不能把计划好的规划存储在系统表里并从中获取它们执行� 这个�特性�将在未来的版本中实��做为可选的方法� 目前的版本可以在当前会话中随后击活的过程中重新使用准备好的规划� 用SPI_execp 执行这些保存了的规划�

用法

SPI_saveplan 把一个传入的规划 �由 SPI_prepare准备�保存在存储器中防止被 SPI_finish 和事务管理器释放并且返回一个指�被保存的规划的指针� 你可以把返回的指针保存在一个局部变量里� 在准备一个规划或在 SPI_execp �见下面�中使用已准备的规划时� 注意检查这个指针是否为 NULL�空��

注意: 如果已准备的规划参考的对�之一 �一个关系�函数�等��在你的会话过程中被删除 �被你的后端或其他过程�那么对此规划的 SPI_execp 执行结果将不可预料�