Выпуск СУБД 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