Skip to content

Commit

Permalink
refactor: switch BooleanBufferBuilder to NullBufferBuilder in a unit …
Browse files Browse the repository at this point in the history
…test of binary_map
  • Loading branch information
Cheng-Yuan-Lai committed Jan 28, 2025
1 parent 329fb91 commit 588c456
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
1 change: 1 addition & 0 deletions datafusion/physical-expr-common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ path = "src/lib.rs"
[dependencies]
ahash = { workspace = true }
arrow = { workspace = true }
arrow-buffer = { workspace = true }
datafusion-common = { workspace = true, default-features = true }
datafusion-expr-common = { workspace = true }
hashbrown = { workspace = true }
Expand Down
15 changes: 8 additions & 7 deletions datafusion/physical-expr-common/src/binary_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ use ahash::RandomState;
use arrow::array::cast::AsArray;
use arrow::array::types::{ByteArrayType, GenericBinaryType, GenericStringType};
use arrow::array::{
Array, ArrayRef, BooleanBufferBuilder, BufferBuilder, GenericBinaryArray,
GenericStringArray, OffsetSizeTrait,
Array, ArrayRef, BufferBuilder, GenericBinaryArray, GenericStringArray,
OffsetSizeTrait,
};
use arrow::buffer::{NullBuffer, OffsetBuffer, ScalarBuffer};
use arrow::datatypes::DataType;
use arrow_buffer::{NullBuffer, NullBufferBuilder, OffsetBuffer, ScalarBuffer};
use datafusion_common::hash_utils::create_hashes;
use datafusion_common::utils::proxy::{HashTableAllocExt, VecAllocExt};
use std::any::type_name;
Expand Down Expand Up @@ -553,10 +553,11 @@ where

/// Returns a `NullBuffer` with a single null value at the given index
fn single_null_buffer(num_values: usize, null_index: usize) -> NullBuffer {
let mut bool_builder = BooleanBufferBuilder::new(num_values);
bool_builder.append_n(num_values, true);
bool_builder.set_bit(null_index, false);
NullBuffer::from(bool_builder.finish())
let mut null_builder = NullBufferBuilder::new(num_values);
null_builder.append_n_non_nulls(null_index);
null_builder.append_null();
null_builder.append_n_non_nulls(num_values - null_index - 1);
null_builder.finish().unwrap()
}

impl<O: OffsetSizeTrait, V> Debug for ArrowBytesMap<O, V>
Expand Down

0 comments on commit 588c456

Please sign in to comment.