Опубликован релиз SQLite 3.38, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.
Основные изменения:
- Добавлена поддержка операторов -> и ->>, упрощающих извлечение данных в формате JSON. Синтаксис новых операторов совместим с MySQL и PostgreSQL.
- В основной состав включены функции для работы с данными в формате JSON, для подключения которых ранее требовалась сборка с флагом “-DSQLITE_ENABLE_JSON1”. Для отключения поддержки JSON добавлен флаг “-DSQLITE_OMIT_JSON”.
- Добавлена функция unixepoch(), возвращающая эпохальное время (число секунд с 1 января 1970 года).
- Для функций работы со временем реализованы модификаторы “auto” и “julianday“.
- SQL-функция printf() переименована в format() для улучшения совместимости с другими СУБД (поддержка старого имени сохранено).
- Добавлен интерфейс sqlite3_error_offset() для упрощения определения местоположения ошибок в запросе.
- В реализацию виртуальных таблиц добавлены новые программные интерфейсы: sqlite3_vtab_distinct(), sqlite3_vtab_rhs_value() и sqlite3_vtab_in(), а также новые типы операторов SQLITE_INDEX_CONSTRAINT_LIMIT и SQLITE_INDEX_CONSTRAINT_OFFSET.
- В интерфейсе командной строки обеспечена корректная обработка символов табуляции и перевода строки в тексте, выводимом в многостолбцовых режимах. Добавлена поддержка использования опций “–wrap N”, “–wordwrap on” и “–quote” при выводе в несколько столбцов.
В команде .import обеспечена корректировка имён столбцов. - В планировщике запросов для ускорения выполнения больших аналитических запросов задействована вероятностная структура bloom filter, применяемая для определения наличия элемента в наборе. Для оптимизации обработки блоков UNION и UNION ALL, охватывающих выражения SELECT с секциями ORDER BY, задействовано сбалансированное дерево слияния.
Дополнительно можно отметить публикацию версии набора sqlite-utils 3.24, включающего утилиты и библиотеку для манипуляции файлами с БД SQLite.
Поддерживаются такие операции как прямая заливка данных JSON, CSV или TSV в файл БД c автоматическим созданием необходимой схемы хранения, выполнение SQL-запросов над файлами CSV, TSV и JSON, выполнение полнотекстового поиска в БД, преобразование данных и схемы хранения в ситуациях когда неприменим ALTER TABLE (например, для изменения типа столбцов), извлечение столбцов в отдельные таблицы.