| 189 | } |
| 190 | |
| 191 | bool isLeftNullAwareJoinWithFilter( |
| 192 | const std::shared_ptr<const core::HashJoinNode>& joinNode) { |
| 193 | return (joinNode->isAntiJoin() || joinNode->isLeftSemiProjectJoin() || |
| 194 | joinNode->isLeftSemiFilterJoin()) && |
| 195 | joinNode->isNullAware() && (joinNode->filter() != nullptr); |
| 196 | } |
| 197 | |
| 198 | bool canDropDuplicates( |
| 199 | const std::shared_ptr<const core::HashJoinNode>& joinNode) { |
no test coverage detected