Small. Fast. Reliable.
Choose any three.

SQLite版本3.35.2于2021-03-17

版本3.35.0(2021-03-12)中的更改:

  1. 添加了内置的SQL数学函数()。(需要 -DSQLITE_ENABLE_MATH_FUNCTIONS编译时选项。)
  2. 增加了对ALTER TABLE DROP COLUMN的支持。
  3. 概括UPSERT
    1. 允许按顺序评估多个ON CONFLICT子句,
    2. 最后的ON CONFLICT子句可以省略冲突目标,但仍使用DO UPDATE。
  4. DELETEINSERTUPDATE语句上添加对RETURNING子句的支持。
  5. 在包含非常大的TEXT或BLOB值的数据库上运行VACUUM时,使用较少的内存。不再需要一次将整个TEXT或BLOB都保存在内存中。
  6. 指定公用表表达式时,增加对MATERIALIZEDNOT MATERIALIZED提示的支持。默认行为以前是NOT MATERIALIZED,但现在已被多次使用的CTE更改为MATERIALIZED。
  7. SQLITE_DBCONFIG_ENABLE_TRIGGERSQLITE_DBCONFIG_ENABLE_VIEW 设置被修改,使它们只控制在主数据库模式或在连接数据库模式,而不是在TEMP模式触发器和视图。始终允许使用TEMP触发器和视图。
  8. 查询计划器/优化器的改进:
    1. 最小/最大优化的增强功能,以便与IN运算符和先前版本的OP_SeekScan优化更好地配合使用。
    2. 尝试在WHERE子句中处理EXISTS运算符,就好像它们是IN运算符一样,这​​是有效的转换,并且似乎可能会提高性能。
    3. 即使父查询是联接,也允许统一UNION ALL子查询。
    4. 即使禁用了STAT4,也可以在WHERE子句中的IS NOT NULL表达式上使用索引(如果适用)。
    5. 如果“ x”是具有“ NOT NULL”约束并且不参与外部联接的列,则形式为“ x IS NULL”或“ x IS NOT NULL”的表达式可能会转换为FALSE或TRUE。
    6. 如果UPDATE不会修改与外键关联的任何列,请避免检查UPDATE语句上的外键约束。
    7. 只要WHERE术语完全由常量和在子查询中所有窗口函数的PARTITION BY子句中找到的表达式的副本组成,就允许将WHERE术语下推到包含窗口函数的子查询中。
  9. CLI增强功能:
    1. 增强“ .stats”命令以接受新的参数“ stmt”和“ vmstep”,从而分别导致准备语句统计信息和仅显示虚拟机步骤计数。
    2. 添加“ .filectrl data_version”命令。
    3. 增强“ .once”和“ .output”命令,以便如果目标参数以“ |”开头 (指示将输出重定向到管道中),则不需要用引号将其引起来。
  10. Bug修复:
    1. 修复在处理具有相关WHERE子句和“ HAVING 0”子句的语法错误的SELECT语句时潜在的NULL指针取消引用的问题。(也在3.34.1修补程序版本中修复。)
    2. 修复了 3.33.0版的IN-operator优化中的一个错误,该错误可能导致错误的答案。
    3. 如果模式以“%”结尾并且存在“ ESCAPE'_'”子句,请修复来自LIKE运算符的错误答案。

版本3.35.1(2021-03-15)中的其他更改:

  1. 修复新的DROP COLUMN功能在索引的列和索引定义中引用的列上使用时的错误
  2. 改进CLI中.dump命令的内置文档。

版本3.35.2(2021-03-17)中的其他更改:

  1. 修复 版本3.35.0中引入的appendvfs.c扩展中的问题 。
  2. 确保不带参数的日期/时间函数(生成依赖于当前时间的响应)被视为 非确定性函数。门票 2c6c8689fb5f3d2f
  3. 修复了sqldiff实用程序中的一个问题,该问题与虚拟表定义中的非正常空格字符有关。
  4. 限制3.35.0发行版中第8c项描述的新UNION ALL优化,以便它不会尝试进行过多的新子查询。有关 详细信息,请参见论坛线程140a67d3d2

    散列:

  5. SQLITE_SOURCE_ID:2021-03-17 19:07:21 ea80f3002f4120f5dcee76e8779dfdc88e1e096c5cdd06904c20fd26d50c3827
  6. sqlite3.c的SHA3-256:e8edc7b1512a2e050d548d0840bec6eef83cc297af1426c34c0ee8720f378a11

一个SQLite的版本的完整列表, 在一个单一的页面和年代都还可以。 SQLite版本控制站点上提供了每个签入的详细历史记录 。