免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4704 | 回复: 1

postgres SPI(服务器编程接口)简介 [复制链接]

论坛徽章:
0
发表于 2003-03-03 17:01 |显示全部楼层
一个SQL语句从客户端发送到postgres后端服务器上是怎么被执行的呢?首先语句进入分析器进行语法分析,生成语法树(parsertree)结构,该语法树结构再进入规划器进行前期处理的重写过程(rewrite)生成查询树(querytree)结构,然后查询树进入优化器进行优化,最后送入执行器执行。

       如果postgres后端(backend)进程正在处理一条plpgsql函数的语句,此时主循环已经运行到了一个执行的过程,而plpgsql函数中又有SQL的处理,主循环不能退出到开始的状态来处理plpgsql函数中的SQL语句呀,怎么办呢?postgres提供一套接口,可以在postgres的后端进程(backend)的内部实现第二套语法分析,规划,优化,执行的过程,这就是SPI(服务器编程接口),plpgsql就是通过SPI来实现的。

       象我们要操作一个文件要先open一样,使用SPI要先调用SPI_connect进行连接,结束后要调用SPI_finish断开连接,注意这里所说的连接不是指数据库的连接,而是指在postgres程序中连接到SPI管理器。

论坛徽章:
0
发表于 2008-10-23 16:34 |显示全部楼层
楼主这方面做得如何了,有空交流一下micropuss@tom.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP