SQLite 3.41.0 发布

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

sqlite 3.41.0 现已正式发布,更新内容如下:

Query planner改进:

在包含 GROUP BY 子句的聚合查询中使用索引表达式。

Query planner 提高了对索引何时是覆盖索引的认识,并相应地调整了预测的运行时间。

Query planner 更积极地使用 co-routines 而不是具体化子查询和视图。

针对内置表值函数 json_tree() 和  json_each() 的查询现在通常会将“ORDER BY rowid”视为 no-op。

增强 Query planner 使用索引表达式的能力, 即使表达式已被常量传播优化修改。(参见 0a539c7。)

添加内置的unhex() sql 函数

添加 base64 和 base85 应用程序定义的函数作为扩展,并将该扩展包含在 CLI 中。

添加 sqlite3_stmt_scanstatus_v2() 接口。(此接口仅在使用 sqlITE_ENABLE_STMT_SCANSTATUS 编译 sqlite 时可用。)

使用 sqlite3_deserialize() 创建的内存数据库现在将其文件名报告为空字符串,而不是“x”。

对 CLI 的更改:

添加新的 base64() 和 base85() sql 函数

使用 sqlITE_ENABLE_STMT_SCANSTATUS 编译时,使用新的 sqlite3_stmt_scanstatus_v2() 接口增强 EXPLAIN QUERY PLAN 输出

“.scanstats est”命令在配置文件中提供 query planner 估计。

继续提示指示输入当前是否在字符串文字、标识符文字、注释、触发器定义等内部。

增强 --safe 命令行选项以禁止危险的 sql 函数

对于 CLI 构建,现在认禁用双引号字符串错误功能。遗留用例可以在运行时使用“ dbconfig dqs_dml on ”和“ .dbconfig dqs_ddl on”命令重新启用错误功能

增强 PRAGMA integrity_check 命令,以便它检测表中的文本字符串何时与索引中的相同字符串等效但不逐字节相同。

增强 carray 表值函数,使其能够绑定 BLOB 对象数组。

添加了 sqlite3_is_interrupted() 接口。

sqlite3_prepare() 和类似函数的长时间调用现在会调用进度处理程序回调,并对 sqlite3_interrupt() 做出反应。

 sqlite3_vtab_in_first() 和 sqlite3_vtab_in_next() 函数得到增强,以便它们可靠地检测是否在未使用 sqlite3_vtab_in() 为多值 IN 处理选择的参数上调用它们。在这种情况下,它们返回 sqlITE_ERROR 而不是 sqlITE_MISUSE。

解析器现在会忽略 IN 运算符右侧子查询周围的多余括号,因此 sqlite 现在在这方面与 Postgresql 的工作方式相同。以前,sqlite 将子查询视为带有隐含“LIMIT 1”的表达式。

向 sqlite3_file_control() API添加了 sqlITE_FCNTL_RESET_CACHE 选项。

Makefile 改进:

新的 makefile target“sqlite3r.c”构建了一个包含恢复扩展的合并。

新的 makefile targets 是“devtest”和“releasetest”,分别用于在执行 check-in 之前运行快速开发测试和执行完整的发布测试。

其他性能增强。

更多详情可查看:https://www.sqlite.org/releaselog/3_41_0.html

 

相关文章

IT之家 10 月 31 日消息,苹果公司面向数据科学家、3D 艺术家...
鞭牛士 10月30日消息,被戏称为“中国AI教父”的网络红人李一...
IT之家 10 月 31 日消息,Meta 首席执行官马克・扎克伯格在第...
IT之家 10 月 31 日消息,当地时间 30 日,OpenAI 宣布,为了...
据路透社报道,OpenAI 正在与 博通(Broadcom)合作开发其 首...
IT之家 10 月 31 日消息,OpenAI 今日宣布,ChatGPT 的高级语...