Представлен релиз SQLite 3.21.0, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.
Основные изменения:
- Поддержка режима атомарной записи для файловой системы F2FS, позволяющего значительно снизить накладные расходы при выполнении транзакций. Для включения режима требуется сборка с опцией SQLITE_ENABLE_BATCH_ATOMIC_WRITE;
- Внутри транзакций разрешено применение команд ATTACH и DETACH;
- Обеспечена возможность записи в виртуальные таблицы в режиме "WITHOUT ROWID", если в качестве первичного ключа задан только один столбец;
- Применение оптимизаций для выражения LIKE расширено использованием LIKE совместно с конструкцией ESCAPE;
- В PRAGMA integrity_check и PRAGMA quick_check реализовано выявление скрытых повреждений строк;
- В планировщике запросов для подзапросов в выражении FROM теперь применяются сопрограммы вместо оптимизиации через развёртывание запроса;
- Включена по умолчанию поддержка использования сопрограмм для подзапросов;
- При разборе виртуальных таблиц, связанных с файлом CSV, теперь последняя строка учитывается даже если в конце нет символа перевода строки;
- Удалена система распределения памяти "scratch", вместо которой предлагается набор настроек SQLITE_CONFIG_SMALL_MALLOCдля минимизации выделения больших блоков памяти;
- В расширение с реализацией виртуальных таблиц union добавлена поддержка виртуальных таблиц swarm, отличающихся методом передачи ссылки на файл с БД;
- Добавлена виртуальная таблица sqlite_dbpage, через которую можно получить прямой доступ к страницам с данными в файле БД. Для активации требуется сборка с опцией "-DSQLITE_ENABLE_DBPAGE_VTAB";
- Добавлен новый тип виртуальных таблиц fts5vocab - "instance", предоставляющий низкоуровневый доступ к содержимому полнотекстового индекса FTS5;
- Внесена серия микрооптимизаций, в сумме позволивших снизить нагрузку на CPU примерно на 2.1%.