从 3.9.0 版本(2015-10-14)开始,SQLite 使用 语义化版本控制。在此之前,SQLite 使用包含 2 到 4 个数字的版本标识符。
从 3.9.0 开始的所有 SQLite 版本都使用形如 X.Y.Z 的三部分 "语义化版本"。第一个数字 X 仅在发生破坏向后兼容性的更改时才会增加。X 的当前值为 3,SQLite 开发人员计划至少到 2050 年 支持当前的 SQLite 数据库文件格式、SQL 语法和 C 接口。因此,可以预期未来几十年内所有 SQLite 版本都将以“3.”开头。
第二个数字 Y 在发生通过添加新功能破坏向前兼容性的更改时会递增。预计大多数未来的 SQLite 版本都会递增第二个数字 Y。每当 Y 递增时,Z 会重置为零。
第三个数字 Z 在仅包含实现性能增强和/或错误修复的小更改的版本中递增。
在过去五年(2010-2015)中,SQLite 的增强速度大约为每年递增 Y 6 次。用于 SQLITE_VERSION_NUMBER 和 sqlite3_libversion_number() 的编号格式允许版本高达 3.999.999,这对于 SQLite 在 2050 年的计划停止支持日期来说绰绰有余。但是,当前的 tarball 命名约定仅为 Y 保留两位数字,因此下载的命名格式需要在大约 2030 年进行修改。
此历史版本号系统使用二、三或四部分版本:W.X、W.X.Y 或 W.X.Y.Z。W 是文件格式:1 或 2 或 3。X 是主版本。Y 是次版本。Z 仅用于修复错误的补丁版本。
SQLite 有三种历史文件格式。SQLite 1.0 到 1.0.32 使用 gdbm 库作为其存储引擎。SQLite 2.0.0 到 2.8.17 使用自定义的 B 树存储引擎,该引擎仅支持文本键和数据。所有现代版本的 SQLite(3.0.0 到现在)都使用一个 B 树存储引擎,该引擎完全支持二进制数据和 Unicode。
此主版本号 X 在历史上仅在代码发生重大且重要的更改时才会递增。“重大且重要”的含义是主观的。3.6.23 到 3.7.0 的更改是由于添加了对 WAL 模式 的支持。3.7.17 到 3.8.0 的更改是由于重写(称为 下一代查询计划器)的结果。
次版本号 Y 在历史上在添加不会显著更改代码结构的新功能和/或新接口时递增。添加 通用表表达式、部分索引 和 表达式索引 都是“次要”更改的示例。同样,“主要”和“次要”之间的区别是主观的。
补丁级别 Z 在历史上仅用于错误修复版本,这些版本仅更改了少量代码行。
此页面上次修改于 2022-01-08 05:02:57 UTC