Version 3.3.6源代碼文件結構 ——整理:hustcat 2009-2-19 |
||
文件名稱 |
大小byte |
備註 |
API部分 |
||
main.c |
35414 |
SQLite Library的大部分接口 |
legacy.c |
3734 |
sqlite3_exec的實現 |
table.c |
5464 |
the sqlite3_get_table() and sqlite3_free_table()的實現,它們是sqlite3_exec的包裝 |
preprare.c |
17983 |
主要實現sqlite3_prepare() |
|
|
|
分詞器部分(Tokenizer) |
||
tokenize.c |
14495 |
分詞器的實現 |
語法分析器部分(Parser) |
||
parser.c |
116917 |
分析器的實現,由Lemon實現 |
parser.h |
6847 |
分析器內部定義的關鍵字 |
|
|
|
代碼生成器部分(Code Generator) |
||
update.c |
23878 |
處理UPDATTE語句 |
delete.c |
21978 |
處理DELETE語句 |
insert.c |
62026 |
處理INSERT語句 |
trigger.c |
29065 |
處理TRIGGER語句 |
attach.c |
15941 |
處理ATTACHT 和DEATTACH語句 |
select.c |
112084 |
處理SELECT語句 |
where.c |
75826 |
處理WHERE語句 |
vacuum.c |
11005 |
處理VACUUM語句 |
pragma.c |
34289 |
處理PRAGMA命令 |
expr.c |
73963 |
處理SQL語句中的表達式 |
auth.c |
7496 |
主要實現sqlite3_set_authorizer() |
analyze.c |
13149 |
實現ANALYZE命令 |
alter.c |
18414 |
實現ALTER TABLE功能 |
build.c |
104052 |
處理以下語法: CREATE TABLE DROP TABLE CREATE INDEX DROP INDEX creating ID lists BEGIN TRANSACTION COMMIT ROLLBACK |
func.c |
34335 |
實現SQL語句的函數語句 |
date.c |
24031 |
與日期和時間轉換有關的函數 |
虛擬機部分(Virtual Machine) |
||
vdbeapi.c |
23300 |
虛擬機提供上層模塊調用的API實現部分 |
vdbe.c |
143552 |
虛擬機的主要實現部分 |
vdbe.h |
5309 |
定義了VDBE的接口,VdbeOp結構體(代表一條指令) |
vdbeaux.c |
58741 |
Vdbe.h的接口的實現 |
vdbeInt.h |
17595 |
Vdbe.c的私有頭文件,定義了VDBE常用的數據結構: Cursor——虛擬機中使用的遊標 Mem——vdbe在內部把所有的SQL值當作一個Mem數據結構來處理 Vdbe——虛擬機數據結構 |
vdbemem.c |
26375 |
操作”Mem”數據結構的函數 |
vdbefifo.c |
2927 |
|
|
|
|
B-Tree部分 |
||
btree.h |
5260 |
頭文件,定義了B-tree提供的操作接口
|
btree.c |
215570 |
B-Tree部分的主要實現,並定義了以下數據結構: Btree——Btree handler BtCursor——使用的遊標 BtLock——鎖 BtShared——包含了一個打開的數據庫的所有信息 MemPage——文件在內存存放在該數據結構中 CellInfo |
|
|
|
Pager部分 |
||
pager.h |
4161 |
定義sqlite page cache子系統提供的接口 |
pager.c |
127490 |
Pager模塊的主要實現,並定義了以下數據結構: PgHdr——每一個內存中的頁面的頁面頭 Pager——該模塊中最重要的數據結構 PgHistory |
|
|
|
OS Interface部分 |
||
os.h |
18355 |
定義了爲上層模塊提供的操作函數,並定義了以下數據結構: OsFile——描述一個文件 IoMethod——OsFile所支持的操作函數(對所有架構都適用的OS Interface) |
os.c |
2866 |
對IoMethod中的函數的包裝 |
os_win.c |
42975 |
Windows平臺下的OS Interface |
os_unix.c |
60831 |
Unix平臺下的OS Interface |
os_os2.c |
28451 |
OS2平臺下的OS Interface |
|
|
|
其它部分 |
||
utf.c |
20891 |
與UTF編碼有關的函數 |
util.c |
43575 |
一些實用函數,比如: sqlite3Malloc(),sqlite3FreeX() |
sqlite3.h |
63873 |
SQLite的頭文件,定義了提供給應用使用的API和數據結構。 |
sqliteInt.h |
78886 |
定義了SQLite內部使用的接口和數據結構 |
printf.c |
29556 |
主要實現與printf有關的函數 |
random.c |
3078 |
隨機數生成 |
hash.c |
11896 |
SQLite使用的hash表 |
hash.h |
4033 |
Hash 表頭文件 |
注:目前,我還沒有把SQLite的源碼讀完,所以文件的歸類可能有漏掉的。