Small. Fast. Reliable.
Choose any three.
SQLite版本3.12.1于2016-04-08
版本3.12.0(2016-03-29)中的更改:
潜在破坏性变化:
- 该SQLITE_DEFAULT_PAGE_SIZE增加从1024到4096 SQLITE_DEFAULT_CACHE_SIZE从2000变为-2000所以高速缓存存储器相同数量的默认情况下使用。有关更多信息,请参见关于3.12.0版页面大小更改的应用笔记
。
性能增强:
- 对Lemon解析器生成器进行了增强
,使其创建了更小,更快的SQL解析器。
- 仅当两个或多个附加数据库都被修改,PRAGMA同步设置为OFF且journal_mode设置为OFF,MEMORY或WAL时,才创建主日记文件。
- 仅在其大小超过阈值时创建语句日记文件。否则,日记将保留在内存中,并且不会发生I / O。可在编译时使用SQLITE_STMTJRNL_SPILL或在启动时使用sqlite3_config(SQLITE_CONFIG_STMTJRNL_SPILL)配置阈值。
-
即使xBestIndex方法未将虚拟表列的sqlite3_index_constraint_usage.omit标志设置在IN运算符的左侧,查询计划程序仍可以优化虚拟表上的IN运算符。
- 现在,查询计划器可以更好地优化
3向或更高连接中的虚拟表访问,其中虚拟表上的约束分布在两个或多个其他连接表中。
- 更有效地处理应用程序定义的SQL函数,尤其是在应用程序定义数百或数千个自定义函数的情况下。
- 查询计划者在估计ORDER BY的成本时会考虑LIMIT子句。
- 配置脚本(在Unix上)自动检测pread()和pwrite()并设置编译时选项以使用这些OS接口(如果可用)。
- 减少保存架构所需的内存量。
- 其他各种微优化,可提高性能并减少内存使用。
新的功能:
- 在sqlite3_db_config()中添加了SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER选项,该选项
允许在运行时启用或禁用fts3_tokenizer() SQL函数的两个参数版本。
-
在RBU扩展中添加了sqlite3rbu_bp_progress()接口。
- 该PRAGMA defer_foreign_keys = ON语句现在还禁止
操作限制外键。
- 添加了sqlite3_system_errno()接口。
- 添加了SQLITE_DEFAULT_SYNCHRONOUS和SQLITE_DEFAULT_WAL_SYNCHRONOUS
编译时选项。该SQLITE_DEFAULT_SYNCHRONOUS编译时选项替换了SQLITE_EXTRA_DURABLE选项,它不再支持。
- 增强了命令行外壳中的“ .stats”命令,以显示有关从/ proc获得的I / O性能的更多信息(如果有)。
Bug修复:
- 确保单个语句中来自多个触发器的sqlite3_set_auxdata()值不会相互干扰。票证dc9b1c91。
- 修复代码生成器,以使用“ x IN(SELECT ...)”形式的表达式,其中RHS上的SELECT语句是相关子查询。机票5e3c886796e5512e。
- 修复与sqlite3_db_readonly()接口关联的无害TSAN警告。
版本3.12.1(2016-04-08)中的其他更改:
- 修复了版本3.12.0引入的边界条件错误,该错误可能在大量使用SAVEPOINT时导致崩溃。机票7f7f8026eda38。
- 修复视图,以便在可能时从定义表继承列数据类型。
- 修复查询计划程序,以便IS和IS NULL运算符能够在LEFT OUTER JOIN上驱动索引。
散列:
- SQLITE_SOURCE_ID:“ 2016-04-08 15:09:49 fe7d3b75fe1bde41511b323925af8ae1b910bc4d”
- sqlite3.c的SHA1:ebb18593350779850e3e1a930eb84a70fca8c1d1
一个SQLite的版本的完整列表,
在一个单一的页面和年代都还可以。
SQLite版本控制站点上提供了每个签入的详细历史记录
。