環(huán)境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
//切換到一個發(fā)布版本#cd postgresql#git checkout REL9_3_4
#cd ..//重新copy一個目錄,確保服務(wù)器上拉下來的代碼不受影響#cp -rf postgresql/ pgsql
#yum install bison#yum install flex#cd pgsql#./configure –enable-depend –enable-cassert –enable-debug系統(tǒng)默認(rèn)安裝至/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”
點(diǎn)擊Next
選擇linux GCC
這樣我們就建立了一個postgres源碼的項目。
//建立data目錄#mkdir /home/data#chown postgres:postgres -R /home/data選擇initdb右鍵,debug as,在C/C++ application下選擇新建,Arguments輸入-D /home/data
點(diǎn)擊Apply按鈕,然后點(diǎn)擊Debug按鈕。在這里我們可以設(shè)置斷點(diǎn),啟動調(diào)試。
首選啟動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
我們看到進(jìn)程5787,5788就是剛才我們運(yùn)行的psql,雙擊5788進(jìn)程,設(shè)置斷點(diǎn)。
命令行輸入SQL語句select current_time;
斷點(diǎn)處我們看到剛才輸入的SQL語句
測試框架包含在postgres源碼目錄中src/test
主要用例都放在regress目錄下,有data、expected、input、output、sql等目錄和parallel_schedule、serial_schedule、standby_schedule等設(shè)置測試用例并行、串行執(zhí)行的文件,如下圖:
postgres的regress test的流程為:逐個執(zhí)行sql/目錄下的sql腳本,將執(zhí)行的結(jié)果重定向到results/目錄下。而expected/目錄下則是預(yù)期的執(zhí)行結(jié)果。將results目錄下的文件逐個與expected中文件進(jìn)行diff。若文件不一致,則判定為對應(yīng)的sql腳本執(zhí)行結(jié)果為失敗,反之為成功。
|
新聞熱點(diǎn)
疑難解答