From ae7a23b51c251fd63befa16b308088723e3b5e66 Mon Sep 17 00:00:00 2001 From: Cheng-Yuan-Lai Date: Sun, 19 Jan 2025 00:13:59 +0800 Subject: [PATCH] refactor: switch BooleanBufferBuilder to NullBufferBuilder in sort function --- datafusion/functions-nested/src/sort.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/datafusion/functions-nested/src/sort.rs b/datafusion/functions-nested/src/sort.rs index 3f2ad57cbe86..8e45ccbf74b8 100644 --- a/datafusion/functions-nested/src/sort.rs +++ b/datafusion/functions-nested/src/sort.rs @@ -20,7 +20,7 @@ use crate::utils::make_scalar_function; use arrow::compute; use arrow_array::{Array, ArrayRef, ListArray}; -use arrow_buffer::{BooleanBufferBuilder, NullBuffer, OffsetBuffer}; +use arrow_buffer::{NullBufferBuilder, OffsetBuffer}; use arrow_schema::DataType::{FixedSizeList, LargeList, List}; use arrow_schema::{DataType, Field, SortOptions}; use datafusion_common::cast::{as_list_array, as_string_array}; @@ -172,11 +172,11 @@ pub fn array_sort_inner(args: &[ArrayRef]) -> Result { let mut array_lengths = vec![]; let mut arrays = vec![]; - let mut valid = BooleanBufferBuilder::new(row_count); + let mut valid = NullBufferBuilder::new(row_count); for i in 0..row_count { if list_array.is_null(i) { array_lengths.push(0); - valid.append(false); + valid.append_null(); } else { let arr_ref = list_array.value(i); let arr_ref = arr_ref.as_ref(); @@ -184,7 +184,7 @@ pub fn array_sort_inner(args: &[ArrayRef]) -> Result { let sorted_array = compute::sort(arr_ref, sort_option)?; array_lengths.push(sorted_array.len()); arrays.push(sorted_array); - valid.append(true); + valid.append_non_null(); } } @@ -201,7 +201,7 @@ pub fn array_sort_inner(args: &[ArrayRef]) -> Result { Arc::new(Field::new_list_field(data_type, true)), OffsetBuffer::from_lengths(array_lengths), Arc::new(compute::concat(elements.as_slice())?), - Some(NullBuffer::new(buffer)), + buffer, ); Ok(Arc::new(list_arr)) }