Выпущена версия SQLite 3.52 с исправлением ошибки WAL и улучшениями CLI

Команда SQLite выпустила версию 3.52, в которой устранена критическая проблема повреждения Базы данных, связанная с сбросом WAL. В новой версии также расширены возможности SQL-движка за счет усовершенствования команды ALTER TABLE, которая теперь позволяет добавлять или удалять ограничения NOT NULL и CHECK для большей гибкости схемы.

Кроме того, в этом выпуске добавлены две встроенные функции SQL, json_array_insert() и jsonb_array_insert(), которые расширяют функциональность JSON для вставки значений в массивы JSON или JSONB.

Новая библиотека Query Result Formatter улучшает отображение результатов запросов на терминалах с фиксированной шириной, поскольку CLI теперь использует QRF для рендеринга таблиц с помощью символов Unicode для рисования рамок. Кроме того, числовые значения по умолчанию выравниваются по правому краю для большей наглядности, а пакетные сеансы сохраняют устаревший формат вывода для обеспечения совместимости скриптов.

CLI включает в себя несколько улучшений. Команда .mode была значительно улучшена, и теперь простые точки с запятой в конце команд с точкой игнорируются. Команда .timer теперь поддерживает один аргумент для измерения времени только следующего SQL-оператора.

Команда .progress добавляет опцию --timeout для прерывания запросов по истечении заданного времени. Аргументы командной строки, ссылающиеся на файлы .sql или .txt, теперь автоматически обрабатываются как скрипты, если они содержат операторы SQL или команды с точкой.

Планировщик запросов был улучшен для повышения производительности, и теперь SQLite последовательно использует стратегию сортировки и слияния для операций EXCEPT, INTERSECT и UNION, которая, как правило, быстрее, чем методы на основе хеширования. Дополнительные оптимизации улучшают порядок соединений в сложных запросах со звездообразной схемой и улучшают преобразования EXISTS-to-JOIN.

Также стоит отметить, что преобразования из плавающей запятой в текст теперь по умолчанию округляют значения до 17 значащих цифр, по сравнению с 15 в предыдущих версиях. Наконец, SQLite 3.52 прекращает поддержку Windows RT.

Для получения более подробной информации читайте примечание к выпуску.