Small. Fast. Reliable.
Choose any three.

SQLite版本3.23.1(2018-04-10)

版本3.23.0(2018-04-02)中的更改:

  1. 使用SQLITE_ENABLE_DESERIALIZE编译时选项时,添加sqlite3_serialize()sqlite3_deserialize()接口。
  2. 将TRUE和FALSE识别为常量。(出于兼容性考虑,如果存在名为“ true”或“ false”的列,则标识符引用这些列而不是布尔常量。)
  3. 支持运算符为“真”,“假”,“不真”和“不假”。
  4. sqlite3_db_status()中添加了SQLITE_DBSTATUS_CACHE_SPILL选项,以报告已发生的高速缓存溢出数量。
  5. 内置printf实现中的“ alternate-form-2”标志(“!”)现在导致字符串替换以字符而不是字节来度量宽度和精度。
  6. 如果虚拟表实现中的xColumn方法使用sqlite3_result_error()返回错误消息,则应优先选择该错误消息,而不是内部生成的消息。
  7. CLI中添加了-A命令行选项,以使其更易于管理 SQLite Archive文件
  8. Zipfile虚拟表中添加对INSERT OR REPLACE,INSERT OR IGNORE和UPDATE OR REPLACE的支持
  9. 增强sqlite3changeset_apply()接口,以使其免受来自故意损坏的变更集对象的攻击。
  10. 添加了sqlite3_normalize() 扩展功能。
  11. 查询优化器增强功能:
    1. 改进省略左连接优化,以使其在右侧表为UNIQUE但不一定为NOT NULL的情况下起作用。
    2. 改进下推优化,使其适用于许多LEFT JOIN。
    3. 添加LEFT JOIN强度降低优化,如果WHERE子句中存在可以防止LEFT JOIN的多余全空行出现在输出集中的条件,则该优化将LEFT JOIN转换为普通JOIN。
    4. 当用小于最大行数的rowid更新AUTOINCREMENT表时,避免不必要地写入sqlite_sequence表 。
  12. Bug修复:
    1. 修复解析器以接受有效的行值语法。门票7310e2fb3d046a5
    2. 修复查询计划程序,以便它考虑WHERE子句中子表达式中表值函数的参数中的依赖项。门票80177f0c226ff54
    3. 使用复杂的或连接的WHERE和STAT4修复错误的结果。门票ec32177c99ccac2
    4. 修复由于自动数据类型转换而导致表达式索引中潜在的损坏。机票343634942dd54ab
    5. FTS4中的断言错误。票证d6ec09eccf68cfc
    6. 在小于value的小于运算符上的结果不正确。门票f484b65f3d62305
    7. 即使整数部分为零,也始终将非零浮点值解释为TRUE。机票36fae083b450e3a
    8. 将fsdir(PATH)表值函数中的问题修复为 fileio.c扩展名,如果将fsdir()表用作联接的内部表,则会导致段错误。问题已在邮件列表中报告并由签入 7ce4e71c1b7251be解决
    9. 当sqlite_master表损坏时,发出错误而不是断言故障或空指针取消引用,以使sqlite_sequence表根页实际上是btree-index页。入住 525deb7a67fbd647
    10. 修复ANALYZE命令,以便它计算名称以“ sqlite”开头的表的统计信息。入住 0249d9aecf69948d
  13. 针对OSSFuzz检测到的问题的其他修复 :
    1. 修复VACUUM上可能损坏数据库文件的无限循环。入住27754b74ddf64
    2. 禁止在触发器和视图的WITH子句使用参数。入住B918D4B4E546D
    3. 修复行值处理中潜在的内存泄漏。入住2df6bbf1b8ca8
    4. 在兆字节大小的字符串上存在许多替换的情况下,请提高replace()SQL函数的性能,以免在测试期间出现OSSFuzz超时。登机fab2c2b07b5d3
    5. 当sqlite_master表包含CREATE TABLE AS语句时,提供适当的错误消息。以前,这会导致断言错误或空指针取消引用。OSSFuzz在GDAL项目上发现了问题。入住 D75E67654AA96
    6. 错误的assert()语句已删除。入住 823779d31eb09cda
    7. 解决了在INTEGER PRIMARY KEY上 使用LIKE优化的问题。入住 b850dd159918af56

版本3.23.1(2018-04-10)中的其他更改:

  1. 修复了新的LEFT JOIN强度折减优化中的两个问题。门票1e39b966ae9ee739fac496b61722daf2
  2. 修复FTS5 xBestIndex方法的异常行为。票证 2b8aed9f7c9e61e8
  3. 修复对未初始化的虚拟机寄存器的无害引用。机票093420fc0eb7cba7
  4. 修复CLI,以便使用-DSQLITE_UNTESTABLE进行构建
  5. 修复eval.c扩展名,使其与PRAGMA empty_result_callbacks = ON一起使用
  6. 修复generate_series虚拟表,以使其在任何约束为NULL的情况下都不会正确返回任何行。
  7. 解析器中的性能增强。

    散列:

  8. SQLITE_SOURCE_ID:“ 2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b”
  9. sqlite3.c的SHA3-256:65750d1e506f416a0b0b9dd22d171379679c733e3460549754dc68c92705b5dc

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