Saturday, 7 May 2011

ソース読み会 sqlite3

いや、古くさいソースです。

 return value がエラー値、返値はポインタ経由
 巨大な関数
 引数処理がmainにずらずら

でも、comment は充実してる。それが救いか。あとから Thread safe にしたらしく、そのあたりのコードは汚いか。

「SQL をサポートしないと」ってのは80年代の新型DBのネックだったかも。sqlite3 は、SQL は yacc で構文解析しているのだけど、

 文法記述が妙に新しい

見たことない感じ。こんな風に書けるのか。でも、

 それなら、再帰下降法で書きなおせよ

って感じ。linker/dynamic loadingのoverhead を嫌ったのか、
 全部のファイルを一つに繋げてコンパイルする方式。

なんだよ、それ。おかげで、デバッグしづらい。

 SQLを構文解析して、byte code を吐いて、それを sql_step で実行

らしいです。廻りくどい。

今回は、Xcode で読んでますが、そこここで、gdb のプロンプトから、あるいは command line から。IDE の方が良いとか言うが、まぁ、できないことはたくさんあるよね。

うっかり、初期化を読んでしまって、廻り道が長かった。明日は、もう少し進むのかな?

No comments: