环境Centos 6.5 GNOME 2.28.2
#mkdir /home/src#cd src#yum install git
#yum install eclipse#yum install eclipse-cdt
#yum install readline-devel
#su – postgres//使用git下载postgresql源代码#git clone git://git.postgresql.org/git/postgresql.git//切换到一个发布版本#cd postgresql#git checkout REL9_3_4
#cd ..//重新copy一个目录,确保服务器上拉下来的代码不受影响#cp -rf postgresql/ pgsql
#yum install bison#yum install flex#cd pgsql#./configure –enable-depend –enable-cassert –enable-debug系统默认安装至/usr/local/pgsql,我们可以使用下面命令安装至其他目录#./configure –PRefix=/usr/local/pgsqldev –enable-depend –enable-cassert –enable-debug
#make#make all
//我们postgres用户名打开eclipse,选择workspace选择”C/C++ » Existing Code as Makefile Project”
点击Next
选择linux GCC
这样我们就建立了一个postgres源码的项目。
//建立data目录#mkdir /home/data#chown postgres:postgres -R /home/data选择initdb右键,debug as,在C/C++ application下选择新建,Arguments输入-D /home/data点击Apply按钮,然后点击Debug按钮。在这里我们可以设置断点,启动调试。
首选启动postgres#/usr/local/pgsql/bin/pg_ctl -D /home/data -l /home/data/logfile start#/usr/local/pgsql/bin/psql在eclipse选择postgre debug as,在Attach下新建debug
我们看到进程5787,5788就是刚才我们运行的psql,双击5788进程,设置断点。
命令行输入SQL语句select current_time;
断点处我们看到刚才输入的SQL语句
测试框架包含在postgres源码目录中src/test主要用例都放在regress目录下,有data、expected、input、output、sql等目录和parallel_schedule、serial_schedule、standby_schedule等设置测试用例并行、串行执行的文件,如下图:
postgres的regress test的流程为:逐个执行sql/目录下的sql脚本,将执行的结果重定向到results/目录下。而expected/目录下则是预期的执行结果。将results目录下的文件逐个与expected中文件进行diff。若文件不一致,则判定为对应的sql脚本执行结果为失败,反之为成功。
新闻热点
疑难解答