Small. Fast. Reliable.
Choose any three.
SQLite版本3.35.2于2021-03-17
版本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。
散列:
- SQLITE_SOURCE_ID:2021-03-17 19:07:21 ea80f3002f4120f5dcee76e8779dfdc88e1e096c5cdd06904c20fd26d50c3827
- sqlite3.c的SHA3-256:e8edc7b1512a2e050d548d0840bec6eef83cc297af1426c34c0ee8720f378a11
一个SQLite的版本的完整列表,
在一个单一的页面和年代都还可以。
SQLite版本控制站点上提供了每个签入的详细历史记录
。