3.課題を設定しよう - PostgreSQL のソースコードを読む

おおまかな構造の把握をしよう。
流れは以下の通りと予想。

  1. クライアントの接続 => postmaster
  2. postermaster => postgres : postermaster
  3. Query のコンパイル : backend/parser
  4. 実行計画 : backend/optimizer
  5. 最適化 : backend/optimizer
  6. インデックスあれば使用
  7. データ fetch
    1. Buffer : backend/storage
    2. Storage : backend/storage

さて列挙してみたものの、やはり具体的に読まないと進まない。
自分の予想として、小さな課題を設定し読み進める事で共通データ構造への理解が深まるのではないかと思っている。
課題設定が問題.とりあえず「PostgreSQL - Wikipedia」を読んでみよう。


よし課題を決めた「/tcop/postgres.c にある exec_simple_query(const char *query_string) から大まかに処理を追い、結果をまとめる」。
おおまかなフェーズ毎に以下の情報をまとめる。

  • 関係するファイル、entry 関数
  • 関連するデータ構造で大事そうなものの名前


続きは明日。