| 672 | } |
| 673 | |
| 674 | void HashProbe::clearDynamicFilters() { |
| 675 | BOLT_CHECK(!hasMoreSpillData()); |
| 676 | BOLT_CHECK(!needSpillInput()); |
| 677 | |
| 678 | // The join can be completely replaced with a pushed down |
| 679 | // filter when the following conditions are met: |
| 680 | // * hash table has a single key with unique values, |
| 681 | // * build side has no dependent columns. |
| 682 | if (keyChannels_.size() == 1 && !table_->hasDuplicateKeys() && |
| 683 | tableOutputProjections_.empty() && !filter_ && !dynamicFilters_.empty() && |
| 684 | !isRightJoin(joinType_)) { |
| 685 | canReplaceWithDynamicFilter_ = true; |
| 686 | } |
| 687 | |
| 688 | Operator::clearDynamicFilters(); |
| 689 | } |
| 690 | |
| 691 | void HashProbe::decodeAndDetectNonNullKeys() { |
| 692 | nonNullInputRows_.resize(input_->size()); |
no test coverage detected