PostgreSQLコードリーディング

PostgreSQLのバージョンは8.3.5。

  1. ソースコードをブラウジングとか
  2. ソースコードのブラウジングにcscope
  3. 参考になる資料とか
  4. デバッグオプションをつけてコンパイル
  5. 参考になる資料とか その2
  6. index-only (別名 index covering)
  7. トランザクションログへの同期
  8. チェックポイントでの同期
  9. バッファ管理の仕組みに苦戦中
  10. バッファ管理。タプルとかページとか
  11. pg_filedumpを使ってみる
  12. バッファ管理。GDBでタプルの実データを見る
  13. バッファ管理。バッファの読み書き
  14. バッファ管理。共有メモリバッファの大きさ
  15. バッファ管理。BufferAllocでキャッシュにヒットしない場合
  16. Distributed TP: The XA Specification
  17. バッファ管理。clock sweepアルゴリズム、BufferAccessStrategyData構造体
  18. JDBCドライバとバックエンドのやりとり
  19. JDBCドライバとバックエンドのやりとり。フロントエンド/バックエンドプロトコル
  20. JDBCドライバ。PreparedStatement#setNull()とParameterMetaData
  21. 同時実行制御。スナップショット
  22. トランザクションブロックのステート
  23. リカバリ。WAL(Write Ahead Log)
  24. バッファ管理。タプルの追加
  25. バッファ管理。タプルの追加。宿題への回答
  26. oid2nameを使ってみた
  27. サブトランザクション、マルチトランザクション、2相コミットって何?
  28. バッファ管理。バッファ、ブロック、ページ、アイテムの区別。
  29. バッファ管理。チェックポイント
  30. バッファ管理。チェックポイント。トランザクションが未確定のデータのフラッシュについて
  31. CLOG
  32. バッファ管理。タプルの追加時のFKチェック
  33. バッファ管理。タプルのロックの開放
  34. PostgreSQLのコードを読むときに参考にしたいチューニングポイント
  35. バッファ管理。タプルの削除
  36. B-Treeインデックス。pg_filedumpと検索時の呼び出しシーケンスの確認
  37. B-Treeインデックス。内部状態?
  38. B-Treeインデックス。btgettuple()。検索時に使われる関数のざっくりとした概要
  39. JDBCドライバ。更新件数の取得
  40. B-Treeインデックス。btbeginscan()
  41. B-Treeインデックス。btbuild()。インデックスのタプルを一時領域に格納するまで
  42. B-Treeインデックス。btbuild()。インデックスのページを書き出すまで
  43. B-Treeインデックス。btinsert()。ページの分割が不要な場合
  44. B-Treeインデックス。btinsert()。ページの分割が必要な場合
  45. B-Treeインデックス。btbulkdelete()。PageからItemを削除するところ
  46. B-Treeインデックス。btbulkdelete()。削除対象のItemを特定するまで
  47. カーソル(ポータル)。フロントエンド/バックエンドプロトコル経由
  48. クエリのパース処理
  49. クエリのパース処理。パースツリーの構造体
  50. クエリのパース処理。クエリツリーの構造体
  51. クエリのパース処理。プランツリーの構造体
  52. エクゼキュータ。PlanStateとExprStateComments
  53. エクゼキュータ。ネストループ結合(Nested Loop Join)
  54. プランツリーのデバッグ出力
  55. エクゼキュータ。集約(Aggregate)
  56. EXPLAINでプランツリーの出力
  57. エグゼキュータ。ビットマップヒープスキャン(Bitmap Heap Scan)
  58. エグゼキュータ。LimitとSort