04.07.2022

Выпуск СУБД SQLite 3.37

Опубликован релиз SQLite 3.37, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.

Основные изменения:

  • Добавлена поддержка создания таблиц с признаком «STRICT«, требующим обязательного указания типа при объявлении столбцов и применяющим строгую проверку соответствия типов добавляемых в столбцы данных. При выставлении данного флага SQLite станет выводить ошибку при невозможности привести указанные данные к типу столбца. Например, если столбец создан как «INTEGER», то передача строкового значения ‘123’ приведёт к добавлению числа 123, но попытка указания ‘xyz’ завершиться ошибкой.
  • В операции «ALTER TABLE ADD COLUMN» добавлена проверка условий существования строк при добавлении столбцов с проверками на базе выражения «CHECK» или с условиями «NOT NULL».
  • Реализовано выражение «PRAGMA table_list» для вывода информации о таблицах и представлениях.
  • В интерфейсе командной строки реализована команда «.connection«, позволяющая одновременно поддерживать несколько соединений к БД.
  • Добавлен параметр «—safe«, отключающий CLI-команды и SQL-выражения, которые позволяют совершать операции с файлами БД, отличающимися от указанной в командной строке БД.
  • В CLI проведена оптимизация производительности чтения SQL-выражений, разбиваемых на несколько строк.
  • Добавлены функции sqlite3_autovacuum_pages(), sqlite3_changes64() и sqlite3_total_changes64().
  • В планировщике запросов обеспечено игнорирование выражений «ORDER BY» в подзапросах и представлениях, если удаление данных выражений не изменяет семантику запроса.
  • Изменено расширение generate_series(START,END,STEP), первый параметр в котором («START») переведён в разряд обязательных. Для возвращения старого поведения возможна пересборка с опцией «-DZERO_ARGUMENT_GENERATE_SERIES».
  • Сокращено потребление памяти для хранения схемы БД.

Источник.