Выпуск СУБД SQLite 3.51
Опубликован релиз 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.
Источник: http://www.opennet.ru/opennews/art.shtml? num=64186
© OpenNet
