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

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

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

  • Предоставлена возможность использования в числах разделителя »_» для более наглядного представления числовых литералов (например, 1_234_567).

  • Добавлена SQL-функция json_pretty () для генерации более читаемого вывода в формате JSON c использованием выделения блоков отступами.

  • Расширены возможности операции «PRAGMA optimize», выполняющей оптимизацию БД и всех схем данных для достижения наилучшей производительности запросов. Реализован автоматически применяемый лимит на длительность анализа БД, исключающий слишком большое время обработки больших БД. Добавлена новая битовая маска «PRAGMA optimize (0×10000)» для отдельной проверки обновлений во всех таблицах. Обеспечен автоматический повторный анализ таблиц, в которых отсутствуют записи sqlite_stat1.

  • В SQL-функцию strftime () добавлена поддержка подстановок %G, %g, %U и %V.

  • В SQL-функции для работы с датами и временем добавлены новые модификаторы ceiling и floor для управления алгоритмом обработки неоднозначных дат, возникающих при операциях сдвига дат на определённое число месяцев или лет. Обеспечено игнорирование модификаторов utc и localtime, если SQLite имеет сведения о том, что время уже в представлении UTC или localtime.

  • Внесены оптимизации в планировщик запросов. Для выражений INSERT, содержащих тысячи значений в секции VALUES, по умолчанию включена оптимизация «VALUES-as-coroutine», позволяющая примерно в два раза ускорить разбор подобных выражений и в два раза сократить потребление памяти. Для запросов вида «SELECT count (DISTINCT col) FROM …» разрешено применение индексов, даже если размер записей в индексе не меньше, чем у записей в таблице. Улучшена логика определения ситуаций, при которых в аргументах SQL-функций указываются константы. Обеспечено применение оптимизации push-down для выражений WHERE, содержащих несвязанные подзапросы.

  • Изменена логика обработки переполнения стека — при обнаружении нехватки памяти для стека парсер теперь пытается выделить дополнительную память из кучи, вместо вывода ошибки «parser stack overflow».

  • В JSON разрешено указание управляющих символов в строковых литералах JSON5. Изменена логика работы операторов »-›» и »-››», когда в правой части строковый операнд содержит только цифры (по аналогии с PostgreSQL такие операнды теперь обрабатываются как строка).

  • В значении DEFAULT в столбцах таблиц разрешено указание больших шестнадцатеричных литералов.



Источник: http://www.opennet.ru/opennews/art.shtml? num=61238

© OpenNet