Open aakulaga-ydb opened 1 month ago
q8, cross join не переписался из-за сложного предиката с substring, надо разбираться, как поддержать и возможно ли переписать джойн вообще. Пока детально не смотрели
Тут, опять же, сложный кейс:
Есть два подзапроса $1, $2
вида select f(colum) from table where g(column)
,
Далее запрос
select * from a cross join b cross join c cross join (select * from $1 left join $2) where substring(c.column) == substring(column from left join)
, cамый правый cross джойн не оптимизирован по причине "не умеем оптимизировать cross join для предиката равенства над результатами функций, примененных к колонке"
Для начала нужно научить INNER JOIN работать с функциями над ключами объединения.
https://gist.github.com/alephonea/11601dde8f1d85fbf4af21271eb0b150
Неправильно определен тип джойна как cross-join, и из-за этого CBO не триггерится