Есть новая версия SQLIte с поддержкой Zip-файлов, улучшенным планировщиком запросов и виртуальной таблицей sqlite_btreeinfo.
SQLite — это внутрипроцессная библиотека, которая реализует автономный, бессерверный, транзакционный механизм базы данных SQL. Вся база данных SQL с несколькими таблицами, индексами, триггерами и представлениями содержится в одном файле на диске.
Наиболее интересным изменением в новом выпуске является возможность виртуальной таблицы Zipfile читать и записывать непосредственно в ZIP-архив. Модуль zipfile предоставляет два аналогичных интерфейса для доступа к zip-архивам. Есть функция с табличным значением, которая обеспечивает доступ только для чтения к существующим архивам, и интерфейс виртуальной таблицы, который обеспечивает доступ как для чтения, так и для записи. Вы можете добавлять файлы в существующий zip-архив, вставляя новые строки, а также редактировать или удалять существующие файлы с помощью UPDATE и DELETE.
В SQLite также добавлена возможность чтения из баз данных в режиме WAL, даже если у приложения нет разрешения на запись в базе данных и содержащем ее каталоге.
Еще одно улучшение — добавление приложения VFS. Это оболочка виртуальной файловой системы, которая позволяет добавлять базу данных SQLite в другой файл. В примечаниях к выпуску говорится, что типичное использование Append VFS — это добавление базы данных к исполняемому файлу, который затем открывает и читает базу данных.
Планировщик запросов — это еще одна область, которую нужно улучшить, во-первых, за счет расширения оптимизации, которая использует индекс для быстрого вычисления агрегата min () или max (), чтобы теперь он работал с индексами для выражений. Второй способ улучшения планировщика запросов — отказ от планов запросов, в которых используются индексы с неизвестными функциями сортировки. Еще одно улучшение означает, что планировщик теперь пропускает неиспользуемые левые соединения, даже если они не являются крайними правыми соединениями запроса.
Наконец, при принятии решения о том, следует ли реализовать подзапрос FROM-clause как сопрограмму или вместо этого использовать сглаживание запроса, планировщик запросов теперь учитывает, является ли набор результатов внешнего запроса «сложным». Набор результатов считается сложным, если он содержит функции или подзапросы выражений, и в этом случае решение о том, какой вариант выбрать, будет смещено в сторону использования сопрограмм.
Оболочка командной строки получила ряд улучшений, в том числе добавлена поддержка чтения и записи файлов архива SQL с помощью команды .archive; и различные новые команды, включая функцию SQL edit () и команду .excel для упрощения экспорта содержимого базы данных в электронную таблицу.