SQLite обновлялся дважды в быстрой последовательности: сначала запланированный выпуск, в котором добавлена поддержка приблизительного анализа с использованием команды Pragma analysis_limit, а затем обновление, исправляющее давнюю ошибку, которая позволяет вредоносным операторам SQL вызывать сбой процесса, выполняющего SQLite.
SQLite — это внутрипроцессная библиотека, которая реализует автономный, бессерверный, транзакционный механизм базы данных SQL. Он поддерживает полнотекстовый поиск и имеет расширения, предлагающие поддержку JSON. Вся база данных SQL с несколькими таблицами, индексами, триггерами и представлениями содержится в одном файле на диске. Разработчики говорят, что SQLite является наиболее часто используемым механизмом баз данных в мире, поскольку он встроен во все мобильные телефоны, основные веб-браузеры и большинство операционных систем.
Незапланированный выпуск — это версия 3.321, в которой исправлены две давние ошибки, которые позволяют вредоносным операторам SQL вызывать сбой процесса, в котором выполняется SQLite. Эти ошибки были объявлены третьей стороной примерно через 24 часа после выпуска 3.32.0, но не относятся к версии 3.32.0.
Улучшения версии 3.32 включают добавление приблизительного анализа. По умолчанию команда «Анализ» выполняет полное сканирование каждого индекса. Это может быть медленным для больших баз данных, поэтому теперь вы можете использовать команду Pragma analysis_limit, чтобы ограничить объем сканирования, выполняемого Analyze, чтобы он работал быстрее даже с очень большими файлами базы данных. Операторы Pragma — это расширения SQL, специфичные для SQLite. Analyze Pragma позволяет вам установить предел для приблизительного количества строк, проверяемых в каждом индексе командой Analyze. Результаты анализа не так хороши, когда исследуется только часть каждого индекса, но обычно результаты достаточно хороши. Установка N на 100 или 1000 позволяет очень быстро запускать команду Analyze даже для файлов базы данных размером несколько гигабайт.
Другие улучшения в выпуске включают поддержку оператора SQL Iif и изменение операторов Insert и Update, так что теперь они всегда применяют привязку столбцов перед вычислением проверочных ограничений.