Small. Fast. Reliable.
Choose any three.
首页
Menu
关于
文档
下载
执照
支持
购买
教程
网站转手
Search
About
Documentation
Download
Support
Purchase
Search Documentation
Search Changelog
SQLite版本3.20.0于2017-08-01
将
sqlite3_errmsg()
返回的错误消息文本更新为一些错误代码。
添加新的
指针传递接口
。
对某些扩展的向后不兼容更改,以利用新的
指针传递接口
提供的改进的安全性 :
扩展FTS5
→需要
sqlite3_bind_pointer()
查找fts5_api指针。
carray(PTR,N)
→要求
sqlite3_bind_pointer()
设置PTR参数。
记住(V,PTR)
→要求
sqlite3_bind_pointer()
设置PTR参数。
添加了
SQLITE_STMT虚拟表
扩展。
添加了
COMPLETION扩展名
-用于建议交互式用户界面的制表符完成。这是一个正在进行的工作。期望在将来的版本中进一步增强功能。
添加了
UNION虚拟表
扩展名。
内置的
日期和时间函数
得到了增强,因此它们可以用于
CHECK约束
,
表达式的索引
以及
部分索引
的WHERE子句中,前提是它们不使用“ now”,“ localtime”,或“ utc”关键字。
更多信息
。
添加了带有额外“ prepFlags”参数的
sqlite3_prepare_v3()
和
sqlite3_prepare16_v3()
接口。
为
sqlite3_prepare_v3()
提供
SQLITE_PREPARE_PERSISTENT
标志,并使用它来限制
FTS3
,
FTS5
和
R-Tree扩展的
后备内存
滥用。
添加了
PRAGMA secure_delete = FAST
命令。当secure_delete设置为FAST时,只要不增加I / O量,旧内容就会被零覆盖。删除的内容可能仍会保留在
空闲页面列表上,
但将从所有b树页面中清除。
命令行外壳的
增强功能:
使用
COMPLETION扩展名
添加对制表符
补全的
支持,用于读取行和行噪声。
添加“ .cd”命令。
增强“
.schema
”命令以显示所有连接的数据库的架构。
增强“
.tables
”,以便在名称不是“ main”以外的其他名称时显示所有附加的架构名称。
“
.import
”命令将忽略初始的UTF-8 BOM。
在“
.dump
”命令中添加了“ --newlines”选项,以使U + 000a和U + 000d字符按原样输出,而不是使用
replace()
函数进行转义 。
查询计划器增强功能:
当为“或”扫描的每个“或”项生成单独的循环时,请将所有常量WHERE表达式移出循环,就像对顶级循环所做的那样。
查询计划程序检查绑定参数的值,以帮助确定部分索引是否可用。
在两个估计费用相同的计划之间进行选择时,应将选择偏向不使用分类器的计划。
最后评估涉及相关子查询的WHERE子句约束,希望它们从未被评估过。
如果子查询从
虚拟表中
读取数据,则不要在LEFT JOIN的RHS上对子查询使用
扁平化优化
,因为这样做会阻止查询计划程序 在子查询的结果上创建
自动索引
。查询。
为
sqlite3_stmt_status()
接口添加
SQLITE_STMTSTATUS_REPREPARE
,
SQLITE_STMTSTATUS_RUN
和
SQLITE_STMTSTATUS_MEMUSED
选项 。
提供
PRAGMA函数,
用于
PRAGMA完整性检查
,
PRAGMA quick_check
和
PRAGMA foreign_key_check
。
将-withoutnulls选项添加到
TCL接口eval方法
。
增强
sqlite3_analyzer.exe
实用程序,使其在btree页面上显示元数据的字节数。
该
SQLITE_DBCONFIG_ENABLE_QPSG
运行时间选项和
SQLITE_ENABLE_QPSG
编译时选项来启用
查询规划的稳定性保证
。另请参阅票证
892fc34f173e99d8
其他优化可将
使用的CPU周期
减少2%。
Bug修复:
对于使用
扁平化优化的
查询,请 修复
sqlite3_column_name()
的行为,以使结果与不使用该优化的其他查询以及PostgreSQL,MySQL和SQLServer一致。门票
de3403bf5ae
。
修复查询计划程序,以便 如果WHERE子句使用
IS运算符
,则它不知道在LEFT JOIN的右表上不使用
自动索引
。修复
ce68383bf6aba
。
确保查询计划程序知道
拼合的
LEFT JOIN的任何列 都可以为NULL,即使该列标记有“ NOT NULL”。修复票务
892fc34f173e99d8
。
当在具有
附加数据库
的数据库连接上运行时,修复
PRAGMA integrity_check中
罕见的假阳性。门票
a4e06e75a9ab61a12
如果使用某些狡猾的CREATE TABLE声明,请修复导致断言错误的错误(由OSSFuzz发现)。门票
bc115541132dad136
散列:
SQLITE_SOURCE_ID:“ 2017-08-01 13:24:15 9501e22dfeebdcefa783575e47c60b514d7c2e0cad73b2a496c0bc4b680900a8”
sqlite3.c的SHA3-256:79b7f3b977360456350219cba0ba0e5eb55910565eab68ea83edda2f968ebe95
一个
SQLite的版本的完整列表,
在一个单一的页面和
年代
都还可以。
SQLite版本控制站点上
提供了每个签入的详细历史记录 。