Опубликован релиз SQLite 3.51, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум.
Основные изменения:
- Добавлены новые JSON-функции jsonb_each() и jsonb_tree(), которые отличаются от ранее доступных функций json_each() и json_tree() тем, что возвращают значение JSONB для данных с типом массив или объект.
- Код расширений carray и percentile перенесён в базовый файл "sqlite3.c" со встраиваемым кодом SQLite. По умолчанию данные дополнения отключены и требуют указания при сборке параметров "-DSQLITE_ENABLE_CARRAY" и "-DSQLITE_ENABLE_PERCENTILE".
- Улучшен интерфейс для использования SQLite в скриптах на языке Tcl. В команду "eval" добавлен флаг "-asdict" для выставления строк с использованием типа "dict" вместо "array". Добавлена возможность прерывания пользовательских функций для возвращения значения NULL.
- Изменения в интерфейсе командной строки:
- Точность команды ".timer" увеличена до микросекунд;
- В режимах форматирования "box" и "column" реализована поддержка символов с двойной шириной;
- Команда ".imposter" теперь может предоставлять в режиме только для чтения imposter-таблицы (позволяют получить доступ к данным в индексе как к таблице), работающие с операцией VACUUM и не требующие запуска с флагом "--unsafe-testing";
- В утилиту sqlite и команду ".open" добавлена опция "--ifexists".
- Максимальная ширина строки, выставляемая при помощи команды ".width", ограничена 30000 символов.
- Внесены оптимизации производительности:
- Сокращена нагрузка на CPU при фиксации транзакций, ограниченных доступом на чтение;
- Улучшено определение операций слияния (JOIN), не возвращающих строки из-за того что одна или несколько таблиц не содержит строк;
- Исключено выполнение скалярных подзапросов, не влияющих на результат;
- Ускорена работа оконных функций в запросах с выражением "BETWEEN :x FOLLOWING AND :y FOLLOWING" и очень большом значении ":y".
- Добавлена прагма "PRAGMA wal_checkpoint=NOOP" и функция API sqlite3_wal_checkpoint() для фиксации изменений в WAL-логе
- В API добавлены функции sqlite3_set_errmsg() и sqlite3_db_status64().
- В JavaScript/WASM-версии SQLite реализована поддержка сборки в представление WebAssembly с 64-разрядными указателями.
- Повышена стойкость от повреждения БД в приложениях, снимающих POSIX-блокировки через вызов close().
- Улучшена поддержка платформы VxWorks.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64186





