Выпуск СУБД SQLite 3.45

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3254
Зарегистрирован: 20.08.2022

#

Выпуск СУБД SQLite 3.45
Дата публикации:Sun, 21 Jan 2024 17:54:11 +0300




Опубликован релиз SQLite 3.45, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Bentley, Bloomberg, Expensify и Navigation Data Standard.



Основные изменения:
  • Все SQL-функции для работы с форматом JSON переписаны и переведены на новый внутренний формат дерева разбора JSONB, который сериализируется и может храниться в БД для исключения повторного разбора при использовании значений JSON. Новые версии функций, формирующих JSON, теперь генерируют бинарный формат JSONB вместо текстового. В функцию json_valid() добавлен необязательный второй аргумент, через который можно задать битовую маску, определяющую признаки корректного JSON (например, при указании 0x04 корректным будет признан блоб JSONB, при указании 0x01 текстовый JSON в формате RFC-8259, а при указании 0x05 оба варианта).
    В виртуальную таблицу FTS5, применяемую для полнотекстового поиска, добавлена опция tokendata, позволяющая использовать собственные токенизаторы.


    По умолчанию включена оптимизация SQLITE_DIRECT_OVERFLOW_READ, при которой overflow-страницы, размер которых больше стандартного размера страницы b-tree, читаются из файла напрямую, минуя кэш. Для отключения при сборке можно использовать опцию "-DSQLITE_DIRECT_OVERFLOW_READ=0".

    В планировщике запросов повышена эффективность оптимизации транзитивных ограничений (transitive constraint) и улучшено игнорирование индексов, которые признаны низкокачественными при выполнении операции ANALYZE.

    В интерфейсе командной строки улучшено отображение содержимого в кодировке UTF-8 на платформе Windows. Обеспечено автоматическое определение использования CLI-интерфейса при воспроизведении скриптов ".dump" и внесение соответствующих изменений в настройки, такие как ".dbconfig defensive off" и ".dbconfig dqs_dll on".

    В определяемые на стороне приложения SQL-функции добавлено свойство SQLITE_RESULT_SUBTYPE, которое разрешает вызывать из функции sqlite3_result_subtype() для инспектирования подтипов аргументов.



Дополнительно можно отметить развитие в экспериментальных сборках SQLite нового режима ведения журнала транзакций - WAL2 ("PRAGMA journal_mode = wal2"), при котором используется два wal-файла ( "database-wal" и "database-wal2") вместо одного. При записи данных в БД, выполняется добавление новых данных в первый wal-файл. Если первый wal-файл достигнет достаточно большого размера, осуществляется переключение на запись во второй файл. После переключение на второй wal-файл, первый становится доступен для фиксации изменений (checkpoint) и перезаписи. Соответственно, когда второй wal-файл достигает большого размера, осуществляется переключение на первый и т.п., что решает проблему с неконтролируемым разрастанием wal-файла в ситуациях, когда долго не фиксируется транзакция или выполняются длительные процессы чтения.



Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60460

Жизнь за Нер'зула!

Ответить