讓postgresql支持存儲過程(函數)的調試

 用PG做了些項目,積累了些經驗,其中之一就是在PG下調試function。
    可以設置break point,單步調試,就象在eclipse裏面調試java code,一個很複雜的function通過這種方式很快就找出問題,大大提高開發效率。(注:要求pg8.2及以上版本)

    PG默認是不支持function調試的,要在PG裏調試function得安裝enterpriseDB提供的pg插件edb-debugger(PL/pgSQL Debugger. Currently requires PostgreSQL 8.2 or higher (or EnterpriseDB 8.1.4 or higher). The PL/pgSQL debugger lets you step through PL/pgSQL code, set and clear breakpoints, view and modify variables, and walk through the call stack)
   
安裝
edb-debugger:
1)源碼方式安裝pg,(這裏不作詳細說明,請參照我的另一篇文章)
2)下載
edb-debugger
    地址:http://pgfoundry.org/projects/edb-debugger/,目前最新版本爲0.92
3)解壓
edb-debugger到pg的源碼目錄下的contrib下面(我的目錄:/home/lyb/postgresql-8.3.3/contrib/pldebugger),進入pldebugger目錄。
4)make
5)make install
好,現在edb-debugger已經安裝完成

配置pg
1)更改數據庫目錄下的postgresql.conf,加入如下紅色語句
#shared_preload_libraries = '' # (change requires restart)(這個系統默認下是註釋掉的,在這句下面加入下面語句)
shared_preload_libraries = '$libdir/plugins/plugin_debugger'(這是新加入的)
2)重新啓動pg
3)在要進行調試的數據庫裏執行pldbgapi.sql文件,這個文件在你pg安裝目錄的share/postgresql/contrib/下面

調試pg的function
1)打開pgadmin3,打開你要調試的數據庫,在你要調試的function上右擊,這時你會發現多了一項Debugging,佔擊子項中的debug就可對function進行調試了。
2)我的調試圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章