摘要: 以下是我在阅读执行器说明的一些内容,我想这对于阅读执行器的源代码还是有所帮助的。如果有什么写的不对的,请大家提出来帮忙修改一下。(主要来源于源代码说明)规划树和状态树规划树和状态树是执行器运行和处理所涉及的主要数据结构。规划树是一棵包含了规划节点的树(结构节点源于结构规划),它是由规划器传递而来的。每一个规划节点都有与之相对应的表达树,用来描述它的目标列表、符合条件等。在执行器启动期间,我们建一棵... 阅读全文
posted @ 2010-01-19 19:40 电信415实验室 阅读(388) 评论(0) 推荐(0)
摘要: 以下是我在阅读执行器说明的一些内容,我想这对于阅读执行器的源代码还是有所帮助的。如果有什么写的不对的,请大家提出来帮忙修改一下。(主要来源于源代码说明)执行器处理的是一棵“规划节点”树。该规划树本质上是一个需求拉动的元组处理操作流水线。每个节点被调用时将会在它的输出队列产生下一个元组,如果没有下一个可用的节点则返回空值。如果该节点不是原始的关系扫描节点,那么它将会有子节点,... 阅读全文
posted @ 2010-01-19 19:34 电信415实验室 阅读(563) 评论(0) 推荐(0)
摘要: 由于windowXp操作系统无疑是大家最熟悉的操作系统,Ubuntu,FressBSD,Red Hat等Unix操作系统大家又不是非常熟悉,上手,所以这里介绍一下在windows下编译PosgreSQL8.4.2的过程(原文链接:http://blog.csdn.net/pqyzwbq/archive/2009/03/22/4014920.aspx)。 首先我们要下载到执行.pl文件的工具:Per... 阅读全文
posted @ 2010-01-19 12:34 电信415实验室 阅读(1406) 评论(0) 推荐(0)
摘要: FreeBSD7.0环境安装postgresql-8.4.2  这两天一直纠结在FreeBSD系统安装与应用程序的安装,如果有用FreeBSD系统来做源码调试工作,建议使用7.2以上版本,我使用7.0版本,安装gnome(桌面系统类似windows)一直出错,推测原因为在FreeBSD的FTP服务器上,7.0版本的FreeBSD已经作为archive存档文件,导致无法使用package安装(pac... 阅读全文
posted @ 2010-01-19 00:33 电信415实验室 阅读(773) 评论(0) 推荐(0)
摘要: postgres.h是postgresql数据库服务器端各个主要模块代码都会包含的一个头文件。这个头文件中包含了服务器端广泛使用的变量的声明,因此,首先分析这个文件对阅读整个源码有很大的帮助。postgres.h又包含了三个头文件:c.h:一些简单类型的定义,其中包括很多typedef和一些简单的struct。utils/elog.h:一些错误报告和日志的定义。utils/palloc.h:定义了... 阅读全文
posted @ 2010-01-18 22:06 电信415实验室 阅读(1733) 评论(0) 推荐(1)
摘要: 上次我分析了PostgreSQL存储系统页面管理的页面初始化函数PageInit,接下来的工作量相当大,由于源码有几十万行,如果像上次一样逐条语句分析的话,那么整体的篇幅是相当巨大的,语言也不容易组织。因此接下来的工作我准备对于每一个.c或者.h文件 的每个数据结构以及函数等整体代码块作出整体分析。下面我来对backend/storage/page/bufpage.c 中的剩余函数进行分析: 紧接... 阅读全文
posted @ 2010-01-18 20:30 电信415实验室 阅读(1221) 评论(0) 推荐(0)
摘要: 步骤:1.显而易见,我们第一步的任务是编译PostgreSQL源代码,将压缩的源代码解压缩,具体怎么做就不用我说了吧,解压缩后的文件夹是postgresql-8.1.1.进入该文件夹后首先要执行的是configure,用于产生Makefile文件,执行命令./configure --enable-debug --enable-assert --without-readline --without-... 阅读全文
posted @ 2010-01-18 16:49 电信415实验室 阅读(1115) 评论(0) 推荐(0)
摘要: PostgreSQL的解析器包括词法解析器和语法解析器。若将PostgreSQL源码安装在/usr/src/pgsq 1 /postgresq 1/src,可用一个环境变量PGROOT代替上述目录。PostgreSQL的解析器定义在$PGROOT/backend/parser目录下。其工作是分析用户前端发送来的SQL语句或PostgreSQL命令,建立Query树。此目录所有函数集成为一个函数Li... 阅读全文
posted @ 2010-01-17 15:04 电信415实验室 阅读(1159) 评论(1) 推荐(1)
摘要: 大家好:你们发帖子时,如果是引用别人的,务必将出处标出来;如果是原创,务必在标题后面加上“(原创)”还有,大家要思考如何证明这些流程和原理,我想就是找出源代码,就某一个小问题、就某一个小的实现流程找出源代码片段,今后要往这个方向努力了。向阳 阅读全文
posted @ 2010-01-17 12:55 电信415实验室 阅读(357) 评论(0) 推荐(0)
摘要: 当应用程序向PostgreSQL系统提交一个查询时,一般要经过五个阶段: (1)联接阶段;(2)分析阶段;(3)重写阶段;(4)优化阶段;(5)执行阶段。PostgreSQL采用“每用户一进程”的Client/Server模型。在这种模型里一个客户端进程只与一个服务器进程联接,即每一个客户端与每一个进程关系一一对应。因为不知道具体要建立多少个联接,所以不得不利用一个主进程在... 阅读全文
posted @ 2010-01-16 18:44 电信415实验室 阅读(1311) 评论(0) 推荐(0)