30.11.2022

Выпуск СУБД SQLite 3.38 и набора утилит sqlite-utils 3.24

Опубликован релиз 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 (например, для изменения типа столбцов), извлечение столбцов в отдельные таблицы.

Источник.