从版本3.9.0(2015-10-14)开始,SQLite使用 语义版本控制。在此之前,SQLite使用的版本标识符包含两个到四个数字。
从3.9.0开始的所有SQLite版本均使用XYZ形式的三位数“语义版本”。仅当存在破坏向后兼容性的更改时,才会增加第一个数字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,这对于2050年SQLite计划的支持终止日期已绰绰有余。但是,当前的tarball命名约定仅保留两位数字用于Y,因此需要在2030年左右修改下载的命名格式。
此历史版本编号系统使用两个,三个或四个数字的版本:WX,WXY或WXYZ 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仅用于仅更改少量代码行的错误修复版本。