Postgresql 中文操作指南

SPI_saveplan

SPI_saveplan —— 保存已准备的语句

Synopsis

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

Description

SPI_saveplan 将传递的语句(由 SPI_prepare 准备)复制到不会由 SPI_finish 或事务管理器释放的内存中,并返回已复制语句的指针。这样,您便可以在当前会话中再次调用 C 函数时重新使用已准备的语句。

Arguments

  • SPIPlanPtr _plan_

    • 要保存的已准备好的语句

Return Value

复制的语句的指针;如果失败,则为 NULL 。出现错误时,将 SPI_result 设置如下:

  • SPI_ERROR_ARGUMENT

    • 如果 plan 等于 NULL 或无效

  • SPI_ERROR_UNCONNECTED

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

Notes

最初传递的语句不会释放,所以您可能希望对其执行 SPI_freeplan ,以便避免在 SPI_finish 之前泄露内存。

在大多数情况下, SPI_keepplan 优于此函数,因为它实现了基本相同的结果,而无需实际复制已准备语句的数据结构。