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

Опубликован релиз SQLite 3.53, легковесной СУБД, оформленной в виде подключаемой библиотеки. Выпуск 3.52 был отменён. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум.

Основные изменения:

  • Устранена ошибка, приводившая к повреждению БД. Проблема присутствовала начиная с версии SQLite 3.7.0 (2010 год), затрагивала БД в режиме WAL (Write-Ahead Logging) и проявлялась из-за состояния гонки при одновременном открытии двух и более соединений к БД, которые пытались записать или зафиксировать транзакции в одном экземпляре БД. Утверждается, что приводящее к сбою стечение обстоятельств проявляется крайне редко и его удалось повторить только в специально созданном тестовом сценарии.
  • В команде «ALTER TABLE» разрешено удалять проверки «NOT NULL» и «CHECK».
  • Добавлена команда «REINDEX EXPRESSIONS» для перестроения индексов на основе выражений, в которых в качестве элемента индекса используется функция над столбцом или операции над столбцами. Команда может применяться для восстановления протухших индексов.
  • Внутри временных триггеров, создаваемых командой «CREATE TEMP TRIGGER» и применяемым к таблицам в других БД, разрешено изменение таблиц или запросы данных из таблиц.
  • В команде «VACUUM INTO» при указании целевого файла через URL реализовано использование параметра «reserve=N» для определения числа создаваемых резервных копий БД.
  • Реализованы новые SQL-функции json_array_insert() и jsonb_array_insert() для вставки элементов в массивы JSON.
  • Добавлена и задействована в утилите командной строки библиотека QRF (Query Result Formatter) для форматирования результатов выполнения SQL-запросов в удобочитаемый вид.
  • Изменения в утилите командной строки:
    • Значительно расширена команда «.mode».
    • Улучшено формирование вывода, например, включена по умолчанию отрисовка рамок, а числовые значения теперь выравниваются по правую границу при табулированном выводе.
    • Обеспечено игнорирование символов «;» после команд.
    • Содержимое указанных в командной строке файлов с расширениями *.sql и *.txt теперь читается и интерпретируется как наборы SQL-выражений и dot-команд.
    • В команду «.timer» добавлена поддержка значения «once» для применения таймера только к следующему SQL-выражению.
    • В команду «.progress» добавлена опция «—timeout S» для принудительного прерывания SQL-выражения после истечения таймаута.
    • В команде «.indexes» изменено поведение шаблонов, которые теперь применяются к именам индексов, а не к именам проиндексированных таблиц.
  • Внесены оптимизации в планировщик запросов, ускорившие работу слияния таблиц и операций ЕXCEPT, INTERSECT и UNION.
  • Повышена производительность функций преобразования чисел с плавающей запятой в текстовое представление.
  • В реализацию, компилируемую в промежуточный код WebAssembly, добавлена VFS «opfs-wl», идентичная VFS «opfs», но использующая API Web Locks для работы с блокировками.
  • В утилиту sqlite3_rsync добавлена опция «-p|—port».
  • Прекращена поддержка платформы Windows RT.

Источник: opennet.ru

Добавить комментарий