Skip to content

SPI_saveplan

SPI_saveplan — 保存已准备的语句

概要

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

说明

SPI_saveplan将已传递的语句(由SPI_prepare准备)复制到不会被SPI_finish或事务管理器释放的内存中,并返回指向已复制语句的指针。这使您能够在当前会话中 C 函数的后续调用中重用已准备的语句。

参数

SPIPlanPtr plan

要保存的已准备好的语句

返回值

指向已复制语句的指针;如果失败,则为NULL。如果出错,SPI_result设置为以下内容

SPI_ERROR_ARGUMENT

如果 planNULL 或无效

SPI_ERROR_UNCONNECTED

如果从未连接的 C 函数调用

注释

最初传递的语句不会被释放,因此你可能希望对其执行SPI_freeplan,以避免在SPI_finish之前泄漏内存。

在大多数情况下,SPI_keepplan比此函数更受青睐,因为它在不需要物理复制已准备语句的数据结构的情况下实现了大致相同的结果。