SQLite 是一个 C 语言库,实现了一个小型、快速、独立、高可靠性、全功能的 SQL 数据库引擎。SQLite 是世界上使用最多的数据库引擎。SQLite 的源代码属于公共领域,每个人都可以免费使用,用于任何目的。

SQLite 3.47.0 现已发布,更新内容如下:

  1. 允许在 RAISE function 的第二个参数中使用任意表达式。
  2. 如果 RHS of the ->> operator 为负数,则从右侧计数访问数组元素。
  3. 修复很少使用的 unix-dotfile VFS 中回滚热日志文件的问题。
  4. 即使 FTS5 表使用未注册的非标准 tokenizer,现在也可以删除。
  5. 修复 group_concat() 聚合函数,使其在收到一个空字符串输入值时返回一个空字符串,而不是 NULL。
  6. 增强 generate_series() 表值函数,使其能够识别并使用其输出值的约束。
  7. 预更新 hooks 现在可以识别由 ALTER TABLE ADD COLUMN 添加的列何时具有非空默认值。
  8. 性能优化:
    1. 改进了与IN 运算符相关的子查询的重用,尤其是当 IN 运算符由于谓词下推而出现重复时。
    2. 对 IN 运算符右侧的子查询使用 Bloom 过滤器,以提高性能。
    3. 确保诸如“ SELECT func(a) FROM tab GROUP BY 1”之类的查询每行仅调用一次 func() 函数。
    4. 不会尝试在已知为非选择性的列上创建自动索引,因为该列已在已分析的其他索引中使用。
    5. 对查询计划器进行调整,以便它能为具有大量维度表的星型查询生成更好的计划。
    6. 添加“order-by-subquery”优化,如果所需的顺序是通过子查询中的 ORDER BY 子句自然获得的,则尝试禁用外部查询中的排序操作。
    7. 只要查询规划器能证明表达式的 subtype 永远不会被使用,“indexed-subtype-expr”优化就会力求使用作为索引一部分的表达式,而不是根据表值重新计算表达式。
    8. 进行各种编码调整以加快运行速度。
  9. SQLite 相关命令行程序的增强:
    1. 添加实验性的 sqlite3_rsync 程序。
    2. 向 CLI 添加扩展函数 median()percentile()percentile_cont() 和 percentile_disc()
    3. 将 .www dot-command 添加到CLI
    4. sqlite3_analyzer 实用程序现在可为 WITHOUT ROWID 提供细分统计信息。
    5. 如果第二个参数不存在,sqldiff 实用程序将避免创建空数据库。
  10. 增强 sqlite_dbpage 表值函数,使得可以使用 INSERT 来增加或减少数据库文件的大小。
  11. SQLite 不再使用“long double”数据类型,因为 long double 的硬件支持越来越少,并且 long double 给某些编译器工具链带来了挑战。取而代之的是,SQLite 在需要扩展精度时使用 Dekker 算法。
  12. SQLite 的 TCL 接口支持 TCL9。
  13. JavaScript/WASM:
    1. 修复 JavaScript“opfs”VFS 中导致损坏的错误。
    2. 纠正“opfs”VFS 的”mode=ro” handling。
    3. 解决几个特定于浏览器的 OPFS quirks。
  14. FTS5 Changes:
    1. 添加 fts5_tokenizer_v2 API 和 locale=1 选项。
    2. 添加 contentless_unindexed=1 选项,用于创建无内容的 fts5 表,将任何 UNINDEXED 列的值持久存储在数据库中。
    3. 即使 FTS5 表使用的 custom tokenizer 实现不可用,也允许将其删除。

更多详情可查看:https://sqlite.org/changes.html

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。