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. Activiti 工作流会签开发设计思路

    http://man1900.iteye.com/blog/1607753 在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务.这种业务需求也很常见 ...

  2. beanfactory与applicationcontext的区别

    ApplicationContext能够自动辨认和应用在其上部署的实现了BeanFactoryPostProcessor的bean 特性                            Bean ...

  3. C 中随机数

    C语言,如何产生随机数: 基本函数 在C中取随机数所需要对函数是: int rand ( void ); void srand ( unsigned int n); 备注:必须包含该头文件#inclu ...

  4. 利用微软类库 Visual Studio International Pack 汉字转拼音

    首先,从微软官网下载安装包:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=44CAC7F0-633B-477D-AED2 ...

  5. Oracle连接配置以及实例的备份和恢复

    背景:一个团队项目开发,不可能每个人都架设自己本地的数据库,大多数情况下是统一用服务器上的数据库,这时候就需要进行远程数据库的连接.而且有时候还需要进行数据库搬迁 ,这时候就需要进行数据库的备份和恢复 ...

  6. Python(Django) 连接MySQL(Mac环境)

    看django的文档,详细的一塌糊涂,这对文档来时倒是好事,可是数据库连接你别一带而过啊.感觉什么都想说又啥都没说明白,最有用的一句就是推荐mysqlclient.展开一个Django项目首先就是成功 ...

  7. struts2的java文件中不能直接弹出script对话框

    需要引入接口 ServletResponseAware public class Login extends ActionSupport implements SessionAware,Servlet ...

  8. C# 链表操作

    关于链表操作,在C#当中微软已经提供了一个LinkedList<T>的数据结构,通过这个类提供的一系列方法就能够实现链表操作. 这里我提供一段代码,这是在论坛里面有人提问时给出的代码,它实 ...

  9. Beyond Compare 使用介绍

    Beyond Compare 背景 平时工作中对于源代码都是使用SVN来管理,在线状态下工作的很好,但是有时候离线状态下,对于多个版本之间的代码合并就比较麻烦.尤其是涉及到多人协作时更是如此. 所以找 ...

  10. ContextMenuOpening 事件

    ContextMenuOpening事件,不能在将要触发的目标ContextMenu中触发,只能包含 这个ContextMenu的父控件中触发该事件. 在ListView中,希望控制右键弹出菜单时,可 ...