Skip to content

Commit

Permalink
Refine
Browse files Browse the repository at this point in the history
  • Loading branch information
zanmato1984 committed Jan 4, 2024
1 parent cbf1b58 commit 5cf8edf
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions cpp/src/arrow/acero/swiss_join.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2153,15 +2153,15 @@ Status JoinProbeProcessor::OnNextBatch(int64_t thread_id,
auto hashes_buf = arrow::util::TempVectorHolder<uint32_t>(temp_stack, minibatch_size);
auto match_bitvector_buf = arrow::util::TempVectorHolder<uint8_t>(
temp_stack, static_cast<uint32_t>(bit_util::BytesForBits(minibatch_size)));
auto filtered_bitvector_buf = arrow::util::TempVectorHolder<uint8_t>(
temp_stack, static_cast<uint32_t>(bit_util::BytesForBits(minibatch_size)));
auto key_ids_buf = arrow::util::TempVectorHolder<uint32_t>(temp_stack, minibatch_size);
auto materialize_batch_ids_buf =
arrow::util::TempVectorHolder<uint16_t>(temp_stack, minibatch_size);
auto materialize_key_ids_buf =
arrow::util::TempVectorHolder<uint32_t>(temp_stack, minibatch_size);
auto materialize_payload_ids_buf =
arrow::util::TempVectorHolder<uint32_t>(temp_stack, minibatch_size);
auto filtered_bitvector_buf = arrow::util::TempVectorHolder<uint8_t>(
temp_stack, static_cast<uint32_t>(bit_util::BytesForBits(minibatch_size)));

for (int minibatch_start = 0; minibatch_start < num_rows;) {
uint32_t minibatch_size_next = std::min(minibatch_size, num_rows - minibatch_start);
Expand Down Expand Up @@ -2296,17 +2296,13 @@ Status JoinProbeProcessor::OnNextBatch(int64_t thread_id,
// the other side of the join.
//
if (join_type_ == JoinType::LEFT_OUTER || join_type_ == JoinType::FULL_OUTER) {
if (!residual_filter_->IsTrivial()) {
arrow::internal::BitmapAnd(match_bitvector_buf.mutable_data(), 0,
filtered_bitvector_buf.mutable_data(), 0,
minibatch_size_next, 0,
match_bitvector_buf.mutable_data());
}
int num_passing_ids = 0;
const uint8_t* match_bitvector = residual_filter_->IsTrivial()
? match_bitvector_buf.mutable_data()
: filtered_bitvector_buf.mutable_data();
arrow::util::bit_util::bits_to_indexes(
/*bit_to_search=*/0, hardware_flags, minibatch_size_next,
match_bitvector_buf.mutable_data(), &num_passing_ids,
materialize_batch_ids_buf.mutable_data());
/*bit_to_search=*/0, hardware_flags, minibatch_size_next, match_bitvector,
&num_passing_ids, materialize_batch_ids_buf.mutable_data());

// Add base batch row index.
//
Expand Down

0 comments on commit 5cf8edf

Please sign in to comment.