天天看点

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 表头文件