feat: support window functions
Данный МР добавляет функционал оконных функций в кластреный SQL пикодаты. Тестовое покрытие сделано на базе локальных тестов тарантула (но часть тестов выкинул, так как в них есть неподдерживаемый функционал в нашем кластерном SQL).
Вся конструкция очень хлипкая (из-за ядра) и всегда есть шанс, что мы словим панику. Это нормально, нужно допортировать около 150 коммитов из SQLite в тарантул. Так что сегфолты вполне возможны.
Сейчас недоделан вывод типов для окон - они выдают наружу ANY. Причина банальна: нужно отрефакторить выражение Over. Сейчас в нем есть поля с именем оконной функции и ее аргументами, а нужно использовать NodeId для StableFunction, для которой задача вывода типов уже решена. Over должен наследовать ее тип. Но так как релиз уже близко, то я бы занялся этим рефактоирнгом сразу после релиза.
Так же не проверялся порядок привязки параметров. По идее все должно работать корректно, но если кто-то погоняет руками тесты для общих окон, то будет классно.
- Depends on: tarantool!223 (merged), docs!684 (merged)
- Close sbroad#824 (closed)
- Cherry-pick to: none
- Docs follow-up: already merged
-
Changelog is updated