codecamp

PostgreSQL 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更适合于 执行这种功能,因为它极大程度上达到了同样的结果而无需物理地 复制该预备语句的数据结构。

PostgreSQL SPI_keepplan
PostgreSQL SPI_register_relation
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

PostgreSQL SQL语言

PostgreSQL 服务器管理

PostgreSQL 客户端接口

PostgreSQL 服务器编程

PostgreSQL 参考

PostgreSQL 内部

PostgreSQL 附录

PostgreSQL 参考书目

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }