SQLite был обновлен, увеличив максимальный поддерживаемый размер базы данных до 281 ТБ и добавив поддержку UPDATE FROM. В новой версии также улучшена проверка целостности.
SQLite — это самая широко распространенная база данных в мире, она компактна, с размером библиотеки менее 600 КБ со всеми включенными функциями. Это внутрипроцессная библиотека, которая реализует автономный, бессерверный механизм транзакционной базы данных SQL с нулевой конфигурацией. Кроме того, разработчики описывают его как среду разработки, не зависящую от языка, с высококачественными языковыми ядрами для языков, включая Python, C++, R и Julia.
Новая поддержка предложения UPDATE FROM в версии 3.33 соответствует синтаксису PostgreSQL. UPDATE FROM позволяет обновлять одну таблицу из второй таблицы, но это не является частью стандартов SQL, и различные продукты реализуют его несколько иначе. Реализация SQLite была написана для обеспечения совместимости с тем, как ее интерпретирует PostgreSQL, а не с версиями, реализованными в Microsoft SQL Server и MySQL.
Другим улучшением является расширение оператора PRAGMA integration_check, поэтому вы можете ограничить его проверкой только одной таблицы и ее индексов, а не всего файла базы данных, что делает операцию более быстрой и гибкой.
Десятичная арифметика — еще одна область, требующая улучшения в этом выпуске, с добавлением десятичного расширения для использования в десятичной арифметике произвольной точности с числами, хранящимися в виде текстовых строк. Добавлены функции сложения, вычитания и умножения — функции деления пока нет.
Планировщик запросов был улучшен, поэтому теперь можно найти план запроса полного сканирования индекса для запросов, использующих INDEXED BY, которые ранее не выполнялись с «без решения запроса».
Планировщик также лучше обрабатывает отсутствующие, неполные или подозрительные данные sqlite_stat1 и создает хорошие планы запросов, несмотря на дезинформацию. Наконец, была улучшена производительность запросов, которые находят минимальное значение в таблице с помощью предложения WHERE …. IN, если у них есть соответствующий индекс.