1.ソースコードの入手と規模の把握 - PostgreSQL のソースコードを読む
ソースコードの入手
postgresql-8.3.5.tar.bz2 を公式サイトから入手。
解凍して、GNU Global で gtags -v しておく。(Emacs から簡単にコードを読めるように)
コードの行数を見る
規模を把握しておけば、読み方も自ずと決まる。
% sudo port install cccc % cd src % find . -name "*.c" | cccc -
約35万行だそうです。全て読んでいたら膨大な時間がかかる事が分かりました。
tree コマンドで構造を見る
contrib が意外と多い。
% tree -L 2 . |-- COPYRIGHT(略) |-- contrib | |-- Makefile | |-- README | |-- adminpack | |-- btree_gist | |-- chkpass | |-- contrib-global.mk | |-- cube | |-- dblink | |-- dict_int | |-- dict_xsyn | |-- earthdistance | |-- fuzzystrmatch | |-- hstore | |-- intagg | |-- intarray | |-- isn | |-- lo | |-- ltree | |-- oid2name | |-- pageinspect | |-- pg_buffercache | |-- pg_freespacemap | |-- pg_standby | |-- pg_trgm | |-- pgbench | |-- pgcrypto | |-- pgrowlocks | |-- pgstattuple | |-- seg | |-- spi | |-- sslinfo | |-- start-scripts | |-- tablefunc | |-- test_parser | |-- tsearch2 | |-- uuid-ossp | |-- vacuumlo | `-- xml2 |-- doc(略) `-- src |-- DEVELOPERS |-- Makefile |-- Makefile.global.in |-- Makefile.shlib |-- backend |-- bcc32.mak |-- bin |-- include |-- interfaces |-- makefiles |-- nls-global.mk |-- pl |-- port |-- template |-- test |-- timezone |-- tools |-- tutorial `-- win32.mak 53 directories, 72 files