Возможно ли в настоящее время оптимизировать Calcite от ненужных объединений? Я имею в виду случай, когда:
... у вас есть густое дерево следующим образом:
---------------------
| |
| |
|--------| |---------|
T1 T2 T2 T3
..., которое можно переписать как дерево слева направо не сканируйте T2 снова:
|-------------------|
| |
|----------| |
T1 T2 T3
В моей ситуации я начинаю с RelBuilder для построения дерева операторов, а не из запроса SQL. Оттуда я хотел бы сгенерировать SQL из оптимизированного RelNode. Я просматривал тесты проекта Calcite, чтобы посмотреть, смогу ли я собрать их вместе, и я наткнулся на «Programs.heuristicJoinOrder (...)», который я подключил к своему приложению, однако после перезаписи выражения я заканчиваю с одним узлом MultiJoin, который я не могу преобразовать в SQL.
У кого-нибудь есть пример, как это сделать, пожалуйста?