29 мая состоялся выпуск 3.50.0 компактной встраиваемой СУБД SQLite, написанной на языке C и распространяемой, как общественное достояние.
Список изменений:
- Добавлена функция
sqlite3_setlk_timeout()
, устанавливающая отдельный таймаут, отличный отsqlite3_busy_timeout()
. - Ограничение
SQLITE_DBCONFIG_ENABLE_COMMENTS
(добавленное в предыдущем выпуске) немного ослаблено, так что комментарии всегда разрешены при чтении схемы из уже существующей таблицыsqlite_schema
. Комментарии блокируются только в новом SQL. - Добавлены встроенные SQL-функции
unistr()
иunistr_quote()
. - В преобразованиях
%Q
и%q
во встроенной функцииprintf()
, флаг альтернативной формы 1 (#
) преобразовывает управляющие символы в бэкслэш-эскейпы, подходящие дляunistr()
. - В консольной утилите запрещён прямой вывод большинства управляющих символов.
- В выводе команды
.dump
используется новая SQL-функцияunistr()
для кодирования специальных символов (если не выключен режим--escape
). - Улучшено форматирование сложных частичных индексов в выводе команды
.schema --indent
. - Улучшена утилита синхронизации БД
sqlite3_rsync
. - Обеспечено соблюдение ограничения JSON5, согласно которому за символом
\0
не должна следовать цифра. - Исправлена ошибка в функции
json_group_object(LABEL,VALUE)
. - Оптимизированы функции
jsonb_set()
иjsonb_replace()
. - Улучшена поддержка сборки в Cygwin, MinGW и им подобных, а также в Termux.
- Исправлены опечатки в документации и в комментариях к исходному коду.
- Различные улучшения производительности.
- JavaScript/WASM: исправлена давняя ошибка вычисления контрольной суммы имени файла в VFS OPFS SAHPool. Базы данных, созданные в этой VFS в версии 3.50.0+, не могут быть прочитаны более старыми версиями VFS, но 3.50.0 обратно совместима с существующими базами данных, созданными в более старых версиях.