您的位置:首页 > IT > 正文

SQLite 3.41.0 发布-天天关注

来源:OSCHINA     时间:2023-02-24 07:22:32


(资料图)

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

相关文章