Small. Fast. Reliable.
Choose any three.
首页
Menu
关于
文档
下载
执照
支持
购买
教程
网站转手
Search
About
Documentation
Download
Support
Purchase
Search Documentation
Search Changelog
SQLite版本3.22.0(2018年1月22日)
sqlite3_trace_v2()
的输出现在显示在触发器中运行的每个单独的SQL语句。
只要应用程序对数据库及其包含的目录缺少写许可权,只要该目录中存在-shm和-wal文件,就可以添加从
WAL模式
数据库中读取的功能。
在
R-Tree扩展中
添加了
rtreecheck()
标量SQL函数。
添加了
sqlite3_vtab_nochange()
和
sqlite3_value_nochange()
接口,以帮助虚拟表实现优化UPDATE操作。
添加了
sqlite3_vtab_collation()
接口。
在FTS5中增加了对
“ ^”初始令牌语法
的支持。
新扩展名:
该
zip文件虚拟表
可以读取和写入一个
ZIP档案
。
在
fileio.c
扩展名中添加了fsdir(PATH)
表值函数
,用于列出目录中的文件。
所述
sqlite_btreeinfo
同名虚拟表内省和估计在数据库中B树的尺寸。
该
追加VFS
是
VFS垫片
,其允许SQLite数据库要附加到某些其他文件。例如,这允许将数据库附加到可执行文件中,然后该可执行文件将打开并读取该数据库。
查询计划器增强功能:
使用索引来快速计算聚合min()或max()的优化已扩展为可
用于表达式的索引
。
现在是决定将FROM子句子查询实现为协同例程还是使用
查询展平,这将
考虑外部查询的结果集是否为“复杂”(如果它包含函数或表达式子查询)。复杂的结果集使决策偏向使用协同例程。
计划程序避免使用带有未知整理功能的索引的查询计划。
计划程序会忽略未使用的LEFT JOIN,即使它们不是查询中最右边的联接。
其他性能优化:
文本到浮点转换子例程的更小,更快的实现:sqlite3AtoF()。
将
柠檬解析器生成器
产生更快的解析器。
使用strcspn()C库例程可以加快LIKE和GLOB运算符的速度。
命令行外壳的
改进:
“ .schema”命令显示虚拟表的结构。
添加了对使用
.archive命令
读取和写入
SQLite Archive
文件的支持 。
添加了实验性
.expert命令
添加了“ .eqp”命令的“ .eqp触发器”变体
增强“ .lint fkey-indexes”命令,使其与
WITHOUT ROWID
表一起使用。
如果外壳程序的filename参数是ZIP存档而不是SQLite数据库,则外壳程序会使用
Zipfile虚拟表
自动打开该ZIP存档。
添加了
edit()SQL函数
。
添加了
.excel命令,
以简化将数据库内容导出到电子表格的操作。
当在命令行上使用--append标志或通过.open命令使用
Append VFS
打开数据库 。
增强
SQLITE_ENABLE_UPDATE_DELETE_LIMIT
编译时选项,使其适用于
WITHOUT ROWID
表。
提供
sqlite_offset(X)
SQL函数,当使用
-DSQLITE_ENABLE_OFFSET_SQL_FUNC进行
编译时,该函数将数据库文件中的字节偏移量返回到记录保存值X的
开头
。
Bug修复:
在WHERE子句中使用OR运算符的UPDATE上的无限循环。问题在3.17.0中引入,并在大约一年后在邮件列表中报告。机票
47b2581aa9bfecec
。
使用跳过预先优化时,查询结果不正确。门票
ef9318757b152e3a
。
使用ORDER BY DESC进行联接时查询结果不正确。票证
123c9ba32130a6c9
。
CREATE TABLE AS和简单的SELECT之间的结果集列名称不一致。机票
3b4450072511e621
在表达式的索引上执行REPLACE时,断言错误。门票
DC3F932F5A147771
在常数索引上执行IN运算符时,断言错误。门票
aa98619ad08ddcab
散列:
SQLITE_SOURCE_ID:“ 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2171d”
sqlite3.c的SHA3-256:206df47ebc49cd1710ac0dd716ce5de5854826536993f4feab7a49d136b85069
一个
SQLite的版本的完整列表,
在一个单一的页面和
年代
都还可以。
SQLite版本控制站点上
提供了每个签入的详细历史记录 。