| 200 | } |
| 201 | |
| 202 | std::unordered_set<JoinTableSide> JoinStepLogical::typeChangingSides() const |
| 203 | { |
| 204 | std::unordered_set<JoinTableSide> result; |
| 205 | for (const auto * node_after_join : actions_after_join) |
| 206 | { |
| 207 | if (node_after_join->type == ActionsDAG::ActionType::INPUT || |
| 208 | node_after_join->type == ActionsDAG::ActionType::COLUMN) |
| 209 | continue; |
| 210 | if (JoinActionRef(node_after_join, expression_actions).fromLeft()) |
| 211 | result.insert(JoinTableSide::Left); |
| 212 | if (JoinActionRef(node_after_join, expression_actions).fromRight()) |
| 213 | result.insert(JoinTableSide::Right); |
| 214 | if (result.size() == 2) |
| 215 | break; |
| 216 | } |
| 217 | return result; |
| 218 | } |
| 219 | |
| 220 | JoinStepLogical::~JoinStepLogical() = default; |
| 221 |
no test coverage detected