Релиз СУБД 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".