Релиз СУБД SQLite 3.25 с поддержкой оконных функций

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

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

  • Добавлена поддержка оконных функций (window-функции или аналитические функции), позволяющих для каждой строки запроса выполнить вычисления, используя другие строки. В отличие от агрегатных функций, которые свёртывают сгруппированный набор строк в одну строку, оконные функции производят агрегирование на основе содержимого «окна», включающего одну или более строк из результирующего набора;
  • Добавлена поддержка переименования столбцов при помощи команды «ALTER TABLE table RENAME COLUMN oldname TO newname»;
  • При переименовании таблиц через «ALTER TABLE» реализовано автоматическое обновление всех ссылок на новое имя в триггерах и представлениях;
  • В состав включён новый модуль Geopoly с реализацией альтернативного интерфейса к R-Tree, использующего для обмена данными формат GeoJSON;
  • Внесены улучшения в оптимизатор запросов: Исключены излишние чтения столбцов в агрегатных запросах, если эти столбцы не упоминаются в агрегатных функциях и не используются в выражении «GROUP BY». Добавлена оптимизация «N-early-out», помогающая ускорить выполнение операции «IN» при наличии индексов, охватывающих несколько столбцов. Обеспечено раскрытие присвоения констант в блоке WHERE (например, «a=99 AND b=a» будет преобразовано в «a=99 AND b=99»);
  • В VFS для UNIX-систем для каждой inode теперь применяется отдельный мьютекс, вместо общей совместной блокировки для всех inode. Изменение позволяет поднять производительность при использовании SQLite в многопоточных программах;
  • В «PRAGMA integrity_check» улучшено выявление проблем, связанных с порчей списка свободных страниц в хранилище;
  • Для индикации бесконечных значений команда ».dump» теперь использует число 1e999;
  • Устранена ошибка, которая при редком стечении обстоятельств могла привести к бесконечному зацикливанию в движке генерации байткода при выполнении оптимизации конструкции «ORDER BY LIMIT».

© OpenNet