皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

SQLite 3.50.0发布

SQLite 3.50.0发布

添加 sqlite3_setlk_timeout() 接口,该接口设置单独的超时, 与 sqlite3_busy_timeout() 不同,用于阻止 build 上的锁 支持阻塞锁。

SQLITE_DBCONFIG_ENABLE_COMMENTS 约束(在上一发行版中添加)略微放宽,以便注释 从预先存在的 sqlite_schema 表中读取架构时始终允许。仅在新 SQL 中阻止注释。

新的 SQL 函数:

  1. unistr()
  2. unistr_quote()

对于内置 printf() 中的 %Q 和 %q 转换(包括 sqlite3_mprintf() API 和 format() SQL 函数等) alternate-form-1 标志位 (“#”) 导致控制字符转换为适合 Unistr() 的反斜杠转义符。

CLI 增强功能:

  1. 避免直接输出大多数控制字符
  2. .dump 命令的输出使用新的 unistr() SQL 函数对特殊字符进行编码,除非 –escape 模式 设置为 off。
  3. 在输出中更好地格式化复杂的部分索引 从 “.schema –indent” 命令

sqlite3_rsync增强功能:

  1. 已删除数据库处于 WAL 模式的要求。
  2. 同步协议得到增强,当 双方一开始彼此非常相似。
  3. sqlite3_rsync 程序现在可以在 Mac 上运行,而无需指定 远程端sqlite3_rsync可执行文件的完整路径名 只要您将 sqlite3_rsync 可执行文件安装在 以下目录之一:$HOME/bin:/usr/local/bin:/opt/homebrew/bin

对 JSON 函数的更改:

  1. 错误修复:强制实施 JSON5 限制,即 “\0” 转义后不得跟数字。
  2. 错误修复:当 json_group_object(LABEL,VALUE) 的 LABEL 参数为 NULL 时,将省略结果对象的该元素。
  3. 优化: 如果 jsonb_set() 或 jsonb_replace() 函数在 内部,他们努力保持 JSONB 对象保持不变,并在内部修改尽可能少的字节 的对象。这有助于减少 I/O,因为它允许 SQLite 仅写入 包含已更改字节的页面,而不是包含所有周围页面的页面。

改进了对在 Cygwin 和 MinGW 以及类似设备上构建的支持 饰演 Termux。

文档和源代码注释中的拼写错误修复。

其他性能改进。

JavaScript/WASM 的:

  1. 修复 OPFS 中长期存在的文件名摘要计算错误 SAHPool VFS.在该 VFS 3.50.0+ 中创建的数据库不能 可以被旧版本的 VFS 读取,但 3.50.0 可以 向后兼容创建的现有数据库 由旧版本。

散 列:

SQLITE_SOURCE_ID:2025-05-29 14:26:00 dfc790f998f450d9c35e3ba1c8c89c17466cb559f87b0239e4aab9d34e28f742

sqlite3.c 的 SHA3-256:b8a2bcdd2ec60f87c3bbe7a2c25eb65e476e40fe80cd066ab8aa98e5d516c1e4

转自 Release History Of SQLite