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