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源代码文件结构的更多相关文章

  1. SQLite剖析之体系结构

    1.通过官方的SQLite架构文档,理清大体的系统层次:Architecture of SQLite 2.阅读SQLite Documentation中Technical/Design Documen ...

  2. SQLite安装、编译与应用

    什么是 SQLite SQLite是一款轻量级的.基于文件的嵌入式数据库,实现自包容.零配置.支持事务的SQL数据库引擎.与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下, ...

  3. Qt之操作数据库(SQLite)

    SQLite 简介 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需 ...

  4. 基于存储过程的MVC开源分页控件--LYB.NET.SPPager

    摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...

  5. subversion(SVN)安装配置

    简介subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.Subversion是一个版本控制系统,相对于的RCS. ...

  6. 【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录

    iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了 ...

  7. Cocos移植到Android的一些问题-SQLite3数据库移植问题

    首选我们讨论一下SQLite3数据库移植问题.我们在第14章节介绍了在Win32平台使用SQLite3数据库,我们介绍了两种配置环境的方法:一种是使用Cocos2d-x提供的SQLite3库配置,另一 ...

  8. iOS开发人员必看的精品资料(100个)

    目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iP ...

  9. 基于存储过程的MVC开源分页控件

    基于存储过程的MVC开源分页控件--LYB.NET.SPPager 摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件M ...

随机推荐

  1. 通过spring来配置某个命令号和执行方法之间的映射

    整理的内容 1.手动获取spring的ApplicationContext和bean对象 写一个工具类实现ApplicationContextAware接口 2.反射的知识整理 3.前后端协议交互的时 ...

  2. VMWare中安装CentOS6.6不能上网的解决办法

    1.首先在虚拟机中将网络配置设置成NAT 2.在windows系统,我的电脑-管理-服务 中开启VMware NAT service和VMware DHCP service. 3.在CentOS里面打 ...

  3. 我踩过的Alwayson的坑!(上集)

    最近被sql server Alwayson高可用组和读写分离,弄得神魂颠倒,身心俱疲.遇到了下面一些问题,提醒自己也给后来人做些记录. EntityFramework支不支持Alwayson? 起因 ...

  4. SQL Server 2012 中 Update FROM子句

    首先说明一下需求以及环境 创建Table1以及Table2两张表,并插入一下数据 USE AdventureWorks2012; GO IF OBJECT_ID ('dbo.Table1', 'U') ...

  5. iOS真机调试之我见

     入职20多天,以前一直以为iOS真机调试是多么复杂的事情,但在公司大牛的帮助下:终于理清头绪,由于公司证书已申请,文章中免不了旁征博引. 1.首先,得有苹果开发者账号,如果在公司,公司会提供:不在公 ...

  6. vs调试windows mobile程序时布署时间太长的解决办法

    vs调试windows mobile程序时布署时间太长的解决办法 1.VS平台上,选工具-选项-项目和解决方案-MS BUILD项目生成输出详细信息中选择“诊断”,目的是在调试窗口中看出哪个过程编译的 ...

  7. Array.splice返回值是数组

    import flash.display.MovieClip; import flash.display.DisplayObject; var m:MovieClip = new MovieClip( ...

  8. Harry Potter

    Names appearing in "Harry Potter" 1.Harry Potter ①Harry is from Henry. ②Harry is related t ...

  9. ubuntu16.04无法连接无线的问题解决方式以及QQ的安装

    0x01 首先我是安装了win10与ubuntu16.04的双系统,不过遇到的问题有启动项与无线连接的问题,今天说一下联网的问题. 连接宽带是正常的,只需要操作sudo pppoeconf 这条命令即 ...

  10. OpenJudge/Poj 1191 棋盘分割

    1.链接地址: http://bailian.openjudge.cn/practice/1191/ http://poj.org/problem?id=1191 2.题目: 总时间限制: 1000m ...