天天看點

SQLite Version3.3.6源代碼檔案結構 -轉載 SQLite Version3.3.6源代碼檔案結構

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 表頭檔案