SQLite Version3.3.6源代碼文件結構

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的源碼讀完,所以文件的歸類可能有漏掉的。

發佈了6 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章