-
Notifications
You must be signed in to change notification settings - Fork 638
Convert mismatched types of arg/sequence when applying optimization of ShuffleByKeys/PartitionsByKeys to empty sequence #1568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Convert mismatched types of arg/sequence when applying optimization of ShuffleByKeys/PartitionsByKeys to empty sequence #1568
Conversation
⚪
|
⚪
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Приведи пожалуйста пример, когда такое может получиться. Сейчас по типизации ForwardList вообще запрещен над списками, а ты его специально зачем-то включаешь. Выглядит, что нужно чинить другое место, где он возникает
Привет! Я тоже об этом думал. Я исследовал работу запроса, который описан в добавленном тесте в этом ревью. В какой-то момент S3-провайдер понимает, что в данном бакете данных нет и вставляет вместо чтения из S3 пустой список в качестве входных данных (с
Со временем это переписывается в такой запрос:
Затем:
Затем мы заходим сюда:
Получаем AST:
Затем, в случае, если у нас тип лямбды - стрим, мы добавляем ForwardList вот этим кодом:
Получаем AST:
Тут есть интересный callable, который меняет тип: FinalizeByKey
После этого как раз сразу срабатывает проверка:
В целом да, проблема скорее всего в FinalizeByKey, но, с одной стороны, он может by design быть как списком, так и стримом (это видно вот здесь, например:
Может быть, есть какое-то третье место, где настоящая ошибка? :) |
В это месте баг core-оптимизатора. Он должен приводить |
⚪
|
⚪
|
⚪
|
⚪
|
⚪
|
…f ShuffleByKeys to empty sequence (ydb-platform#1568)
…f ShuffleByKeys to empty sequence (ydb-platform#1568)
…f ShuffleByKeys to empty sequence (ydb-platform#1568)
Changelog entry
...
Changelog category
Additional information
...