sqlite-doc
首页
SQLite简介
SQLite特性
推荐使用场景
快速使用SQLite
SQLite体系结构
体系结构
各结构作用
进程模型
什么是VDBE
sqLite为什么要使用虚拟机
VDBE的运行
vdbeInt.h简介
VDBE执行方法
SQLite执行与VDBE
OP_Init
OP_Transaction
OP_TableLock
OP_Goto
OP_ReadCookie
OP_If
OP_Integer1
OP_SetCookie
OP_Integer2
OP_CreateTable
OP_OpenWrite
OP_NewRowid
OP_Null1
OP_Insert
OP_Close1
OP_Close2
OP_Null2
OP_OpenWrite1
OP_MustBeInt
OP_NotExists
OP_Rowid
OP_IsNull
OP_String
OP_String1
OP_String2
OP_Copy
OP_String3
OP_MakeRecord
OP_Insert1
OP_Close3
OP_Integer3
OP_SetCookie1
OP_ParseSchema
OP_Halt
SQLite执行过程
vdbeaux.c源码概览
vdbeaux.c 源码介绍与分析
创建vdbe结构体
vdbe准备阶段
相关修改函数
配置函数
析构函数
debug模式
删除vdbe结构体
列出虚拟机中的程序清单
显示部分
分配空间
初始化vdbe
执行前的准备
释放资源
vdbe执行中的处理
函数sqlite3VdbeHalt
函数sqlite3VdbeResetStepResult
函数sqlite3VdbeTransferError
函数sqlite3VdbeReset
函数sqlite3VdbeFinalize
函数sqlite3VdbeDeleteObject和sqlite3VdbeDelete
函数sqlite3VdbeCursorMoveto
函数u64 floatSwap
函数sqlite3VdbeSerialPut
函数sqlite3VdbeAllocUnpackedRecord
函数sqlite3ExpirePreparedStatements
函数sqlite3VdbeSetVarmask
vdbesort.c源码概览
N-路归并的算法及数据结构说明
结构体定义
函数定义
关系查询处理器
查询解析和授权
SQLite中的SQL语句
SELECT的语法图
SQLite中SQL语句执行步骤
sqlite查询处理的关键函数
查询语法树
FROM子句
SQLite中FROM子句的使用
SQLite中FROM子句的实现
ON子句
SQLite中ON子句的使用
SQLite中ON子句的实现
访问授权
SQLite的授权检查实现
设置或清除访问授权
授权返回一个非法的值
验证数据库中表的列信息是否可访问
验证解析树中TK_COLUMN表达式是否可访问
使用给定的代码和参数的授权检查
利用栈存储解析树的授权内容
查询重写
重写器的主要功能
SQLite查询重写
几类查询重写
子查询扁平化
连接查询
WHERE子句
WHERE子句具体使用
SQLite中使用addWhereTerm函数和selectInnerLoop函数
GROUP BY子句
GROUP子句具体使用
SQLite中finalizeAggFunctions函数
Having子句
DISTINCT子句
all和distinct子句
codeDistinct函数
ORDER BY子句
ORDER BY子句具体应用
SQLite中multiSelectOrderBy函数
LIMIT子句
SQLite中computeLimitRegisters函数
OFFSET子句
另外一些重要的函数
sqlite3SelectPrep函数
sqlite3GetVdbe函数
minMaxQuery函数
查询优化器
查询优化流程
SQLite中几种查询优化做的处理
查询扫描策略
查询策略代价模型及计算方式
与查询代价有关的处理-ANALYZE命令
Analyze的SQL语法
Analyze 命令接口
analyzeDatabase函数
analyzeTable函数
loadAnalysis函数
analyzeOneTable函数
stat3Init函数,stat3Push函数,stat3Get函数
其他用到的一些函数
SQLite中查询优化的具体实现
sqlite3WhereBegin函数
exprAnalyzeAll函数
exprAnalyze函数
bestBtreeIndex函数
bestOrClauseIndex函数
whereRangeScanEst函数
codeOneLoopStart函数
sqlite3WhereEnd函数
where.c概述
where.c的执行过程
where.c中主要结构体和函数调用关系
主要结构体
主要函数调用关系
where子句的查询优化
WHERE子句分析
BETWEEN语句优化
OR语句优化
LIKE语句优化
Skip-Scan优化
多重索引的选择
覆盖索引
自动索引
wherecSummary
SQLite中查询优化方式的总结
查询执行器
数据修改语句
Build.c分析
实现的功能
具体功能的实现
表的创建
表的删除
与表相关的操作
视图的创建
索引的创建
索引的删除
释放索引(与删除索引相关)
与索引相关的其他操作
ID序列的创建
ID序列的删除
ID序列其他操作
事务的开始
事务的提交
事务的回滚
临时数据库
写操作
异常检查
Insert.c解析
insert的主要关系
sqlite3OpenTable()
sqlite3IndexAffinityStr()
sqlite3TableAffinityStr()
static int readsTable()
static int autoIncBegin()
void sqlite3AutoincrementBegin()
static void autoIncStep()
sqlite3AutoincrementEnd()
xferOptimization()
sqlite3Insert()
sqlite3GenerateConstraintChecks()
sqlite3CompleteInsertion()
sqlite3OpenTableAndIndices()
xferCompatibleCollation()
xferCompatibleIndex()
分析delete.c和update.c
CAST函数
ESCAPE
Like和Glob
ISNULL
between
EXISTS
case when
RAISE()函数
Delete.c中主要函数的实现及功能
sqlite3SrcListLookup()函数
sqlite3IsReadOnly()函数
sqlite3MaterializeView()函数
sqlite3LimitWhere()函数
sqlite3DeleteFrom()函数
sqlite3GenerateRowDelete()函数
sqlite3GenerateRowIndexDelete()函数
sqlite3GenerateIndexKey()函数
Update.c简介
sqlite3ColumnDefault函数说明
sqlite3ColumnDefault函数结构
函数流程图
sqlite3Update函数说明
sqlite3Update函数结构
sqlite3Update函数流程图
updateVirtualtable函数说明
updateVirtualtable函数结构
updateVirtualtable函数流程图
Update.c中主要函数的实现及功能
sqlite3ColumnDefault()函数
sqlite3Update()函数
updateVirtualTable()函数
Trigger.c
基本语法
函数介绍
触发器编码(Code)
sqlite3BeginTrigger和sqlite3FinishTrigger
Step
实现修改表功能ALTER TABLE(alter.c的源码分析)
重命名表的名称
修改任何外键约束定义重命名表为父表
对触发器的表名做修改
创建表达式形式的文本
生成用来选择有外键约束的全部表的表达式文本
删除和重新加载从数据库表pTab的内部模式
判断一个系统表
删除表名并重命名为新表名
生成,清空,删除SELECT查询树函数
数据库扩展性
virtualtable虚表
vacuum.c分析
Loadext及clegacy.c文件解析
R-tree概述
使用Rtree模块
创建一个Rtree索引
获取一个Rtree索引
查询一个Rtree索引
有效使用Rtree
定制R树查询
旧版本xGeom回调函数
全新xQueryFunc回调函数
定制查询注意事项
SQLiteR树结构
结点结构
结点单元结构
R树特点及算法实现
查找
插入
删除
更新
平方分裂
线性分裂
R*树优化
局部优化
整体优化
全文索引
全文检索(full-text search)
索引的组织结构
索引的创建
索引的搜索
Lemon语法分析器模板文件
分词器
Tokenizer运行原理
代码code发生器
FTS3概述
分词器:FTS tokenizer分析
自定义(用户)实现tokenizers
FTS3
fts3_expr简介
ParseContext结构体
getNextToken()函数
getNextString()函数
getNextNode()函数
insertBinaryOperator()函数
fts3ExprParse()函数
sqlite3Fts3ExprParse()函数
在SQLite3下查询数据
其它一些函数的功能
事务:并发控制和恢复
SQLite不同模式的锁与实现
SQLite锁机制简介
文件加锁方法
POSIX locking
No-op Locking
dot-file Locking
flock Locking
Named Semaphore Locking
AFP Locking
各个锁机制实现函数
SQlite互斥锁分析
mutex.h
mutex.c
Mutex初始化
互斥体enter使用
互斥体try使用
Mutex_w32.c
互斥锁结构体
设置结构体下的锁的函数指针
初始化互斥锁
互斥锁结构体分配
请求锁
销毁锁
mutex_unix.c
互斥锁结构体
函数功能
mutex_noop.c
非调试情况
调试的情况
memjournal.c
日志相关存储结构
函数指针结构体
函数功能表
打开内存日志
读取内存日志
是否为内存日志文件
memjournal.c
函数及结构体功能
Wal的介绍
Wal的工作原理
Wal的优缺点
工作原理
Wal文件格式
校验
读写事务
保存点
性能问题
检查点
lockandmutex
存储管理
文件系统
文件函数及结构体分析
系统接口
简析打开数据库流程
简析os_win.c文件的函数结构
简析SQLite的锁机制
SQLite在Windows系统上的锁机制实现流程
锁机制在Windows中的实现源码
文件结构
功能的主要实现
filesysteminterface
SQLite中B-tree的实现
SQLite中的B-tree
SQLite层次化数据组织
页面溢出
B-tree API
实现的技术细节
Pager概述
Pager状态
Pager的数据库文件页
Pager的相关参数
页面类型
Pager的状态
Pager的结构
日志
页面缓存
锁机制
Pager的运行流程概述
打开/关闭一个页面连接
配置页面对象的函数
获取和释放页面引用的函数
对页面引用的操作
管理页面事务和保存点的函数
查询页面状态/配置
截断数据库文件
测试/调试
页面缓冲管理
缓存管理
缓存组织
cache具体结构
Struct PCache与Struct PCach1
Struct PCache VS Struct PCache1
struct PgHdr 1与struct PCache1
cache内存结构
Struct PGroup与Struct PCacheGlobal
Bitvec.c介绍
具体实现及源码分析
共享组件
目录管理器
内存分配器
动态内存分配器
空操作内存分配器-mem0.c
缺省内存分配器-mem1.c
调试内存分配器-mem2.c
关于backtrace
设置哨兵对内存破坏进行检查
通过unfree list检查内存泄露
内存分配函数
实验内存分配器-Mem3.c
Mem3.c功能概述
名词及相关概念
块存储结构
内存分配结构体
Mem3.c函数列表
函数代码解析
通用内存分配器-mem5.c
mem5.c功能概述
mem5.c调用的C接口
名词及相关概念
函数及结构体功能
重要代码解析
Malloc.c
结构体
特性
测试
配置
API介绍
总结
dynamicmemorymalloc
其他工具
SqliteLimite.h
SqliteInt.h
Global.c模块源码分析
主函数分析
vdbemem.c分析
SQLite的虚拟机
结构体"Mem"的操作函数-vdbemem.c
函数功能
操作控制
Printf.c分析
数据类型定义
sqlite3AppendSpace()函数
sqlite3VXPrintf()函数
sqlite3StrAccumAppend()函数
*sqlite3StrAccumFinish()函数
sqlite3StrAccumReset()函数
sqlite3StrAccumInit()函数
*sqlite3VMPrintf()函数
*sqlite3MPrintf()函数
*sqlite3MAppendf()函数
*sqlite3_vmprintf()函数
*sqlite3_mprintf()函数
sqlite3_vsnprintf()函数;sqlite3_snprintf()函数
renderLogMsg()函数
sqlite3_log()函数
sqlite3DebugPrintf()函数
sqlite3XPrintf()函数
date.c模块源码分析
主要结构体
获取系统读数
读取时区差异扩展表示格式
正常时间与儒略日数之间的相互转换
转换为Julian Day Number所发生的的错误个数
获取系统当前时间
时间戳的语法改良
时间的表示
util.c分析
utf.c分析
Ctime.c模块源码分析
Printf.c
功能
宏定义
结构体
函数
et_getdigit
sqlite3AppendSpace
sqlite3VXPrintf
其他函数
date.c模块源码分析(1)
date.c模块源码分析(2)
forexample
complete.c模块源码分析
callback.c模块源码分析
Hash
Sqlite源代码介绍
Shell模式下使用CLP
命令行模式下的CLP
实现SQL的各种函数(func.c的源码分析)
算术函数
字符处理函数
条件判断函数
集合函数
其他函数
SQLite C API
重要的API函数
用户自定义函数
结果代码
Powered by
GitBook
首页
SQlite源码分析
本文档主要对SQLite的各个部件原理的进行分析。
如有问题,请发送至:jappro@163.com
results matching "
"
No results matching "
"