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学习(三) - SQLite源代码文件结构

    SQLite Version3.3.6源代码文件结构   文件名称 大小byte 备注 API main.c 35414 SQLite Library的大部分接口   legacy.c 3734 sq ...

  2. android源代码文件结构

    转于:http://flysnow.iteye.com/blog/867424 Android 2.1  |-- Makefile  |-- bionic                        ...

  3. 【编程实践】SQLite 极简教程

    1 SQLite 教程 SQLite 简介 本教程帮助您了解什么是 SQLite,它与 SQL 之间的不同,为什么需要它,以及它的应用程序数据库处理方式. SQLite 是一个软件库,实现了自给自足的 ...

  4. SQLite安装、编译与应用

    原文: https://www.cnblogs.com/5211314jackrose/p/5720100.html 什么是 SQLite SQLite是一款轻量级的.基于文件的嵌入式数据库,实现自包 ...

  5. sqllite事务和MySQL事务_Android学习---SQLite数据库的增删改查和事务(transaction)调用...

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

  6. sqlite的编译、练习

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] sqlite之前一直听说过,但是没有怎么使用过.今天从sqlite的官方网站上下载了源码,也就 ...

  7. sqlite的交叉编译及移植 -转

    平台: PC机:redhat9.0 arm板:at91sam9260/linux-2.6.22 交叉编译器:armv51-linux-gcc 1..从sqlite的官方网站下载sqlite的最新版本源 ...

  8. Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作

    QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持. QSqlDatabase对象象征了数据库的关联.Qt使用驱 ...

  9. linux下sqlite安装及基本使用

    目录 一. sqlite基本介绍 二. linux下安装sqlite3过程 方法一:apt 方法二:从官网下载sqlte的安装包解压安装 三. sqlite图形化管理界面DB Browser for ...

最新文章

  1. 下列关于python字典变量的定义中错误的是_python练习题-day14
  2. python3爬虫入门教程-Python3爬虫学习入门教程
  3. KVM中Virtio网络的演化之路
  4. SWOOLE httpserver
  5. GitHub 中文文档正式发布了!激动人心的大好事!
  6. win7安装mysql 5.7.25_Windows下安装mysql-5.7.25-winx64.zip
  7. 写一个工具生成数据库实体类
  8. Python—实训day6—爬取汽车消费投诉案例
  9. node将图片转换成html文件,node+puppeteer将整个网页html转换为图片并保存【滚动截屏】...
  10. ie浏览器剪贴板操作警告弹窗关闭方法
  11. 华三交换机配置多个镜像口_H3C交换机端口镜像配置的方法
  12. java获取泛型的类型_Java反射获取泛型类型
  13. SSH医院门诊就约系统答辩PPT免费下载
  14. LaTeX伪代码写法总结
  15. VS2015开发工具里面没有Arial字体怎么办?VS如何添加字体
  16. Bat| 批处理注释
  17. activeMQ启动失败61616port被占用问题
  18. BFM-总线功能模型
  19. Priest John's Busiest Day (2-sat)
  20. 快递查询 教你一个方法使用物流单号查询物流信息

热门文章

  1. 【C 语言】指针数据类型 ( 指针类型变量 | 使用 * 操作内存 )
  2. 【错误记录】Flutter 使用 MediaQuery 适配全面屏报错 ( No MediaQuery widget ancestor found. )
  3. 【运筹学】运输规划 ( 运输规划问题模型及变化 | 表上作业法引入 )
  4. 【计算机网络】数据链路层 : 差错控制 ( 检错编码 | 差错来源 | 差错分类 | 冗余编码 )
  5. python 在内网windows环境下pip三方包
  6. python学习_数据处理编程实例(一)
  7. 一、如何创建一个状态栏扩展(火狐插件扩展开发教程)
  8. (转)PWA(Progressive Web App)渐进式Web应用程序
  9. 感謝有PPStream這種好東西
  10. POJ 3275 Ranking the Cows (floyd传递闭包)