Small. Fast. Reliable.
Choose any three.

SQLite版本3.22.0(2018年1月22日)

  1. sqlite3_trace_v2()的输出现在显示在触发器中运行的每个单独的SQL语句。
  2. 只要应用程序对数据库及其包含的目录缺少写许可权,只要该目录中存在-shm和-wal文件,就可以添加从WAL模式数据库中读取的功能。
  3. R-Tree扩展中添加了rtreecheck()标量SQL函数。
  4. 添加了sqlite3_vtab_nochange()sqlite3_value_nochange()接口,以帮助虚拟表实现优化UPDATE操作。
  5. 添加了sqlite3_vtab_collat​​ion()接口。
  6. 在FTS5中增加了对“ ^”初始令牌语法的支持。
  7. 新扩展名:
    1. zip文件虚拟表可以读取和写入一个 ZIP档案
    2. fileio.c扩展名中添加了fsdir(PATH)表值函数,用于列出目录中的文件。
    3. 所述sqlite_btreeinfo 同名虚拟表内省和估计在数据库中B树的尺寸。
    4. 追加VFSVFS垫片,其允许SQLite数据库要附加到某些其他文件。例如,这允许将数据库附加到可执行文件中,然后该可执行文件将打开并读取该数据库。
  8. 查询计划器增强功能:
    1. 使用索引来快速计算聚合min()或max()的优化已扩展为可 用于表达式的索引
    2. 现在是决定将FROM子句子查询实现为协同例程还是使用查询展平,这将 考虑外部查询的结果集是否为“复杂”(如果它包含函数或表达式子查询)。复杂的结果集使决策偏向使用协同例程。
    3. 计划程序避免使用带有未知整理功能的索引的查询计划。
    4. 计划程序会忽略未使用的LEFT JOIN,即使它们不是查询中最右边的联接。
  9. 其他性能优化:
    1. 文本到浮点转换子例程的更小,更快的实现:sqlite3AtoF()。
    2. 柠檬解析器生成器产生更快的解析器。
    3. 使用strcspn()C库例程可以加快LIKE和GLOB运算符的速度。
  10. 命令行外壳的改进:
    1. “ .schema”命令显示虚拟表的结构。
    2. 添加了对使用.archive命令读取和写入SQLite Archive文件的支持 。
    3. 添加了实验性.expert命令
    4. 添加了“ .eqp”命令的“ .eqp触发器”变体
    5. 增强“ .lint fkey-indexes”命令,使其与 WITHOUT ROWID表一起使用。
    6. 如果外壳程序的filename参数是ZIP存档而不是SQLite数据库,则外壳程序会使用Zipfile虚拟表自动打开该ZIP存档。
    7. 添加了edit()SQL函数
    8. 添加了.excel命令,以简化将数据库内容导出到电子表格的操作。
    9. 当在命令行上使用--append标志或通过.open命令使用Append VFS打开数据库 。
  11. 增强SQLITE_ENABLE_UPDATE_DELETE_LIMIT编译时选项,使其适用于WITHOUT ROWID表。
  12. 提供sqlite_offset(X) SQL函数,当使用-DSQLITE_ENABLE_OFFSET_SQL_FUNC进行编译时,该函数将数据库文件中的字节偏移量返回到记录保存值X的开头
  13. Bug修复:
    1. 在WHERE子句中使用OR运算符的UPDATE上的无限循环。问题在3.17.0中引入,并在大约一年后在邮件列表中报告。机票 47b2581aa9bfecec
    2. 使用跳过预先优化时,查询结果不正确。门票ef9318757b152e3a
    3. 使用ORDER BY DESC进行联接时查询结果不正确。票证 123c9ba32130a6c9
    4. CREATE TABLE AS和简单的SELECT之间的结果集列名称不一致。机票 3b4450072511e621
    5. 在表达式的索引上执行REPLACE时,断言错误。门票DC3F932F5A147771
    6. 在常数索引上执行IN运算符时,断言错误。门票aa98619ad08ddcab

    散列:

  14. SQLITE_SOURCE_ID:“ 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2171d”
  15. sqlite3.c的SHA3-256:206df47ebc49cd1710ac0dd716ce5de5854826536993f4feab7a49d136b85069

一个SQLite的版本的完整列表, 在一个单一的页面和年代都还可以。 SQLite版本控制站点上提供了每个签入的详细历史记录 。