SQLite Version3.3.6源代码文件结构
文件名称 | 大小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——文件在内存存放在该数据结构中,aCellInfo | |
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 表头文件 |
参考
http://www.cnblogs.com/hustcat/archive/2009/02/26/1398896.html
或"SQLite offical document - architecture"
http://www.sqlite.org/arch.html