Skip to content

Commit fb4cbfe

Browse files
committed
clippy
1 parent 8b70c73 commit fb4cbfe

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

native/core/src/execution/planner.rs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ use datafusion::physical_expr::LexOrdering;
8686

8787
use crate::parquet::parquet_exec::init_datasource_exec;
8888
use arrow::array::{
89-
BinaryArray, BooleanArray, Date32Array, Decimal128Array, Float32Array, Float64Array,
90-
Int16Array, Int32Array, Int64Array, Int8Array, NullArray, StringBuilder,
89+
BinaryArray, BinaryBuilder, BooleanArray, Date32Array, Decimal128Array, Float32Array,
90+
Float64Array, Int16Array, Int32Array, Int64Array, Int8Array, NullArray, StringBuilder,
9191
TimestampMicrosecondArray,
9292
};
9393
use arrow::buffer::{BooleanBuffer, Buffer, MutableBuffer, OffsetBuffer};
@@ -540,21 +540,32 @@ impl PhysicalPlanner {
540540
.build_list_scalar()
541541
}
542542
DataType::Binary => {
543+
// Using a builder here as it is quite complicated to create StringArray from a vector with nulls
544+
// to calculate correct offsets
543545
let vals = values.clone();
544-
let offsets = MutableBuffer::new((vals.bytes_values.len() + 1) * size_of::<i32>());
545-
let offsets = Buffer::from(offsets);
546-
let value_offsets = unsafe { OffsetBuffer::new_unchecked(offsets.into()) };
547-
SingleRowListArrayBuilder::new(Arc::new(BinaryArray::new(value_offsets, vals.int_values.into(), Some(vals.null_mask.into()))))
546+
let len = vals.bytes_values.len();
547+
let mut arr = BinaryBuilder::with_capacity(len, len);
548+
549+
for (i, v) in vals.bytes_values.into_iter().enumerate() {
550+
if vals.null_mask[i] {
551+
arr.append_value(v);
552+
} else {
553+
arr.append_null();
554+
}
555+
}
556+
557+
SingleRowListArrayBuilder::new(Arc::new(arr.finish()))
548558
.build_list_scalar()
549559
}
550560
DataType::Utf8 => {
551-
// Using a builder here as it is quite complicated to create StringArray from vector of string with nulls
561+
// Using a builder here as it is quite complicated to create StringArray from a vector with nulls
562+
// to calculate correct offsets
552563
let vals = values.clone();
553564
let len = vals.string_values.len();
554565
let mut arr = StringBuilder::with_capacity(len, len);
555566

556567
for (i, v) in vals.string_values.into_iter().enumerate() {
557-
if !vals.null_mask[i] {
568+
if vals.null_mask[i] {
558569
arr.append_value(v);
559570
} else {
560571
arr.append_null();

0 commit comments

Comments
 (0)