Small. Fast. Reliable.
Choose any three.
SQLite版本3.35.5于2021-04-19
版本3.35.0(2021-03-12)中的更改:
- 添加了内置的SQL数学函数()。(需要
-DSQLITE_ENABLE_MATH_FUNCTIONS编译时选项。)
- 增加了对ALTER TABLE DROP COLUMN的支持。
- 概括UPSERT:
- 允许按顺序评估多个ON CONFLICT子句,
- 最后的ON CONFLICT子句可以省略冲突目标,但仍使用DO UPDATE。
- 在DELETE,INSERT和
UPDATE语句上添加对RETURNING子句的支持。
- 在包含非常大的TEXT或BLOB值的数据库上运行VACUUM时,使用较少的内存。不再需要一次将整个TEXT或BLOB都保存在内存中。
- 指定公用表表达式时,增加对MATERIALIZED和NOT MATERIALIZED提示的支持。默认行为以前是NOT MATERIALIZED,但现在已被多次使用的CTE更改为MATERIALIZED。
- 该SQLITE_DBCONFIG_ENABLE_TRIGGER和SQLITE_DBCONFIG_ENABLE_VIEW
设置被修改,使它们只控制在主数据库模式或在连接数据库模式,而不是在TEMP模式触发器和视图。始终允许使用TEMP触发器和视图。
- 查询计划器/优化器的改进:
- 最小/最大优化的增强功能,以便与IN运算符和先前版本的OP_SeekScan优化更好地配合使用。
- 尝试在WHERE子句中处理EXISTS运算符,就好像它们是IN运算符一样,这是有效的转换,并且似乎可能会提高性能。
- 即使父查询是联接,也允许统一UNION ALL子查询。
- 即使禁用了STAT4,也可以在WHERE子句中的IS NOT NULL表达式上使用索引(如果适用)。
- 如果“ x”是具有“ NOT NULL”约束并且不参与外部联接的列,则形式为“ x IS NULL”或“ x IS NOT NULL”的表达式可能会转换为FALSE或TRUE。
- 如果UPDATE不会修改与外键关联的任何列,请避免检查UPDATE语句上的外键约束。
- 只要WHERE术语完全由常量和在子查询中所有窗口函数的PARTITION BY子句中找到的表达式的副本组成,就允许将WHERE术语下推到包含窗口函数的子查询中。
- CLI增强功能:
- 增强“ .stats”命令以接受新的参数“ stmt”和“ vmstep”,从而分别导致准备语句统计信息和仅显示虚拟机步骤计数。
- 添加“ .filectrl data_version”命令。
- 增强“ .once”和“ .output”命令,以便如果目标参数以“ |”开头 (指示将输出重定向到管道中),则不需要用引号将其引起来。
- Bug修复:
- 修复在处理具有相关WHERE子句和“ HAVING 0”子句的语法错误的SELECT语句时潜在的NULL指针取消引用的问题。(也在3.34.1修补程序版本中修复。)
- 修复了
3.33.0版的IN-operator优化中的一个错误,该错误可能导致错误的答案。
- 如果模式以“%”结尾并且存在“ ESCAPE'_'”子句,请修复来自LIKE运算符的错误答案。
版本3.35.1(2021-03-15)中的其他更改:
- 修复了新的DROP COLUMN功能在索引的列和索引定义中引用的列上使用时的错误。
- 改进CLI中.dump命令的内置文档。
版本3.35.2(2021-03-17)中的其他更改:
- 修复
版本3.35.0中引入的appendvfs.c扩展中的问题
。
- 确保不带参数的日期/时间函数(生成依赖于当前时间的响应)被视为
非确定性函数。门票
2c6c8689fb5f3d2f
- 修复了sqldiff实用程序中的一个问题,该问题与虚拟表定义中的非正常空格字符有关。
- 限制3.35.0发行版中第8c项描述的新UNION ALL优化,以便它不会尝试进行过多的新子查询。有关
详细信息,请参见论坛线程140a67d3d2。
版本3.35.3(2021-03-26)中的其他更改:
- 增强字节码引擎的OP_OpenDup操作码,以便即使复制的光标本身来自OP_OpenDup,它也可以工作。已修复
票bb8a9fd4a9b7fce5。由于最近进行了MATERIALIZED提示增强,因此才发现此问题。
- 当实现相关的公用表表达式时,请针对每个用例分别执行此操作,这是正确性所必需的。这解决了MATERIALIZED提示增强所引入的问题。
- 修复了UNIX VFS的文件名规范化器中的问题。
- 修复CLI中的“框”输出模式,以便它与返回一列或多列零列的语句一起使用(例如PRAGMA增量_vacuum)。
论坛帖子afbbcb5b72。
- 改进了由错误的公用表表达式生成的错误消息。
论坛帖子aa5a0431c99e。
- 修复一些错误的assert()语句。
- 修复SELECT语句语法图,以便正确显示FROM子句语法。
论坛帖子9ed02582fe。
- 修复EBCDIC字符分类器,以便它将换行符理解为空格。
论坛帖子58540ce22dcd。
- 在(不支持的)整数虚拟表
扩展的实现中改进了xBestIndex方法,以便说服查询计划程序更好地完成工作,从而避免尝试实现具有无限行的表。
论坛帖子b52a020ce4。
版本3.35.4(2021-04-02)中的其他更改:
- 修复上述第8b条所标识的查询计划程序优化中的一个缺陷。票证
de7db14784a08053。
- 修复新的RETURNING语法中的缺陷。机票
132994c8b1063bfb。
- 修复新的RETURNING功能,以便在RETURNING子句中的一项引用一个未知表时引发错误,而不是默默地忽略该错误。
- 修复与下推优化错误地触发的与聚合函数处理相关的断言。
版本3.35.5(2021-04-19)中的其他更改:
- 修复了新的ALTER TABLE DROP COLUMN功能中可能损坏数据库文件的缺陷。
- 修复了可能导致错误查询结果的模糊查询优化器问题。
散列:
- SQLITE_SOURCE_ID:2021-04-19 18:32:05 1b256d97b553a9611efca188a3d995a2fff712759044ba480f9a0c9e98fae886
- sqlite3.c的SHA3-256:e42291343e8f03940e57fffcf1631e7921013b94419c2f943e816d3edf4e1bbe
一个SQLite的版本的完整列表,
在一个单一的页面和年代都还可以。
SQLite版本控制站点上提供了每个签入的详细历史记录
。