Выпуск СУБД 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