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 Version3.3.6源代码文件结构的更多相关文章
- SQLite剖析之体系结构
1.通过官方的SQLite架构文档,理清大体的系统层次:Architecture of SQLite 2.阅读SQLite Documentation中Technical/Design Documen ...
- SQLite安装、编译与应用
什么是 SQLite SQLite是一款轻量级的.基于文件的嵌入式数据库,实现自包容.零配置.支持事务的SQL数据库引擎.与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下, ...
- Qt之操作数据库(SQLite)
SQLite 简介 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需 ...
- 基于存储过程的MVC开源分页控件--LYB.NET.SPPager
摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...
- subversion(SVN)安装配置
简介subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.Subversion是一个版本控制系统,相对于的RCS. ...
- 【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录
iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了 ...
- Cocos移植到Android的一些问题-SQLite3数据库移植问题
首选我们讨论一下SQLite3数据库移植问题.我们在第14章节介绍了在Win32平台使用SQLite3数据库,我们介绍了两种配置环境的方法:一种是使用Cocos2d-x提供的SQLite3库配置,另一 ...
- iOS开发人员必看的精品资料(100个)
目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iP ...
- 基于存储过程的MVC开源分页控件
基于存储过程的MVC开源分页控件--LYB.NET.SPPager 摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件M ...
随机推荐
- C# 编写短信发送Window服务
我们做项目过程中,一般都会有发送短信的需求.最常见的就是户注册或者登录时发送短信验证码.不同类型的短信发送,我们都可以放到到一张短信表中,然后通过一个定时的作业去执行短信发送.而定时作业的执行,我们就 ...
- 编译gd-2.0.35.tar.gz时报错:gd_png.c:16:53: error: png.h: No such file or directory
编译gd-2.0.35.tar.gz时报错: gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/freetype/include/freetype2 -I/us ...
- 2 JavaScript应用开发实践指南
JavaScript 语言在浏览器中的运用 HTTP请求,加载HTML后根据内容加载CSS等,大部分浏览器默认2个下载链接. HTML元素要尽可能简洁,不需要将Table元素变成多个div, css代 ...
- Arithmetic Expression
时间限制:2000ms 单点时限:200ms 内存限制:256MB 描述 Given N arithmetic expressions, can you tell whose result is cl ...
- 今日吐槽20151208.net服务器控件
正文 今天有个小任务是给页面添加一个搜索条件,复选框多选.因为页面都是服务器控件,我也只能用服务器控件配合了.然后给页面加了一个 CheckBoxList 控件.后台通过数据表加载数据. fore ...
- 不使用BeanUtils,利用Java反射机制:表单数据自动封装到JavaBean
在百度搜“java反射 将表单数据自动封装到javabean ”,第一页显示的都是一样的代码,都是利用导入第三方jar包<commons-beanutils>和<commons-lo ...
- 谈谈我对OAuth的理解
自己的理解是,OAuth是一种授权标准. 用于为除了用户之外的第三方应用授权, 并且在授权过程中,第三方应用不会接触到用户的任何信息, 授权完成后,第三方应用可访问用户授权范围内的信息. ...
- python mysqldb连接数据库
今天无事想弄下python做个gui开发,最近发布的是python 3k,用到了数据库,通过搜索发现有一个mysqldb这样的控件,可以使用,就去官方看了下结果,没有2.6以上的版本 没办法就下了一个 ...
- PHP程序员的技术成长规划(送给迷茫的你)
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...
- 基于等待队列及poll机制的按键驱动代码分析和测试代码
按键驱动分析: #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> ...