Postgresql 中文操作指南 47. Server Programming Interface 47.1. Interface Functions SPI_saveplan 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 优于此函数,因为它实现了基本相同的结果,而无需实际复制已准备语句的数据结构。