MCPcopy Create free account
hub / github.com/apache/arrow / MergeHasMatch

Method MergeHasMatch

cpp/src/arrow/acero/hash_join.cc:706–725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

704 }
705
706 void MergeHasMatch() {
707 if (hash_table_empty_) {
708 return;
709 }
710
711 int32_t num_rows = hash_table_keys_.num_rows();
712 has_match_.resize(bit_util::BytesForBits(num_rows));
713 memset(has_match_.data(), 0, bit_util::BytesForBits(num_rows));
714
715 for (size_t tid = 0; tid < local_states_.size(); ++tid) {
716 if (!local_states_[tid].is_initialized) {
717 continue;
718 }
719 if (!local_states_[tid].is_has_match_initialized) {
720 continue;
721 }
722 arrow::internal::BitmapOr(has_match_.data(), 0, local_states_[tid].has_match.data(),
723 0, num_rows, 0, has_match_.data());
724 }
725 }
726
727 static constexpr int64_t hash_table_scan_unit_ = 32 * 1024;
728 static constexpr int64_t output_batch_size_ = 32 * 1024;

Callers

nothing calls this directly

Calls 6

BytesForBitsFunction · 0.85
BitmapOrFunction · 0.85
resizeMethod · 0.80
num_rowsMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected