![](/assets/default-avatar.DiENtRNU.webp)
SPI_saveplan
SPI_saveplan — 保存已准备的语句
概要
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
说明
SPI_saveplan
将已传递的语句(由SPI_prepare
准备)复制到不会被SPI_finish
或事务管理器释放的内存中,并返回指向已复制语句的指针。这使您能够在当前会话中 C 函数的后续调用中重用已准备的语句。
参数
SPIPlanPtr
plan
要保存的已准备好的语句
返回值
指向已复制语句的指针;如果失败,则为NULL
。如果出错,SPI_result
设置为以下内容
SPI_ERROR_ARGUMENT
如果
plan
为NULL
或无效SPI_ERROR_UNCONNECTED
如果从未连接的 C 函数调用
注释
最初传递的语句不会被释放,因此你可能希望对其执行SPI_freeplan
,以避免在SPI_finish
之前泄漏内存。
在大多数情况下,SPI_keepplan
比此函数更受青睐,因为它在不需要物理复制已准备语句的数据结构的情况下实现了大致相同的结果。