| 196 | } |
| 197 | |
| 198 | bool canDropDuplicates( |
| 199 | const std::shared_ptr<const core::HashJoinNode>& joinNode) { |
| 200 | // Left semi and anti join with no extra filter only needs to know whether |
| 201 | // there is a match. Hence, no need to store entries with duplicate keys. |
| 202 | return !joinNode->filter() && |
| 203 | (joinNode->isLeftSemiFilterJoin() || joinNode->isLeftSemiProjectJoin() || |
| 204 | joinNode->isAntiJoin()); |
| 205 | } |
| 206 | |
| 207 | uint64_t HashJoinMemoryReclaimer::reclaim( |
| 208 | memory::MemoryPool* pool, |
no test coverage detected