這篇文檔描述SQLite庫的基本架構。對那些想要理解和修改SQLite的人很有幫助。
下面這張圖表展示了SQLite的組件和它們之間的關係。
接口(Interface)
SQLite的很多對外接口的實現函數在main.c,legacy.c和vdbeapi.c。還以一些散落在其他文件中,sqlite3_get_table() 函數實現在table.c,sqlite3_mprintf()函數在printf.c,sqlite3_complete()在tokenize.c中。SQLite的更多接口請訪問available
separately。
爲了不和其他代碼產生命名衝突,所有的SQLite API命名以sqlite3_爲前綴。
Tokenizer和Parser
注:tokenizer是負責把SQL語句解析爲一個個的“串”,而Paser是根據這些“串”的前後序列關係來生成相應的語法結構。
Code Generator(代碼生成器)
生成Virtual Machine可以執行的高效代碼