From 7e254633f1f1fbb21f2a34139cbe2467ffd01d77 Mon Sep 17 00:00:00 2001 From: Liang-Chi Hsieh Date: Mon, 14 Nov 2022 21:33:32 -0800 Subject: [PATCH] Update --- arrow-array/src/array/mod.rs | 9 ++++++--- arrow-array/src/array/primitive_array.rs | 15 ++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arrow-array/src/array/mod.rs b/arrow-array/src/array/mod.rs index e3a1ab52e19..09685ae72a4 100644 --- a/arrow-array/src/array/mod.rs +++ b/arrow-array/src/array/mod.rs @@ -372,6 +372,7 @@ impl<'a, T: Array> Array for &'a T { } } +/* /// A kind of `Array` which can be downcasted by `downcast_array`. pub(crate) trait SizedArray: AsDynAny + Array {} @@ -393,6 +394,7 @@ pub(crate) fn downcast_array( ) -> Option> { AsDynAny::as_dyn_any(array).downcast().ok() } + */ /// A generic trait for accessing the values of an [`Array`] /// @@ -884,6 +886,7 @@ where #[cfg(test)] mod tests { use super::*; + use crate::cast::downcast_array; use arrow_schema::Field; #[test] @@ -1140,10 +1143,10 @@ mod tests { fn test_downcast_array() { let array: Int32Array = vec![1, 2, 3].into_iter().map(Some).collect(); - let boxed: Arc = Arc::new(array); - let array: Arc = downcast_array(boxed).unwrap(); + let boxed: ArrayRef = Arc::new(array); + let array: Int32Array = downcast_array(&boxed); let expected: Int32Array = vec![1, 2, 3].into_iter().map(Some).collect(); - assert_eq!(&array, &Arc::new(expected)); + assert_eq!(array, expected); } } diff --git a/arrow-array/src/array/primitive_array.rs b/arrow-array/src/array/primitive_array.rs index ec76d27fb1b..75fdeec2e70 100644 --- a/arrow-array/src/array/primitive_array.rs +++ b/arrow-array/src/array/primitive_array.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use crate::array::SizedArray; use crate::builder::{BooleanBufferBuilder, BufferBuilder, PrimitiveBuilder}; use crate::iterator::PrimitiveIter; use crate::raw_pointer::RawPtrBox; @@ -565,9 +564,6 @@ impl Array for PrimitiveArray { } } -/// Makes `PrimitiveArray` can be "downcast_array". -impl SizedArray for PrimitiveArray {} - impl<'a, T: ArrowPrimitiveType> ArrayAccessor for &'a PrimitiveArray { type Item = T::Native; @@ -1075,7 +1071,8 @@ impl PrimitiveArray { mod tests { use super::*; use crate::builder::{Decimal128Builder, Decimal256Builder}; - use crate::{downcast_array, BooleanArray}; + use crate::cast::downcast_array; + use crate::{ArrayRef, BooleanArray}; use std::sync::Arc; #[test] @@ -1984,10 +1981,10 @@ mod tests { fn test_into_builder() { let array: Int32Array = vec![1, 2, 3].into_iter().map(Some).collect(); - let boxed: Arc = Arc::new(array); - let array: Arc = downcast_array(boxed).unwrap(); + let boxed: ArrayRef = Arc::new(array); + let col: Int32Array = downcast_array(&boxed); + drop(boxed); - let col: Int32Array = Arc::try_unwrap(array).unwrap(); let mut builder = col.into_builder().unwrap(); builder.append_value(4); @@ -2004,7 +2001,7 @@ mod tests { fn test_into_builder_cloned_array() { let array: Int32Array = vec![1, 2, 3].into_iter().map(Some).collect(); - let boxed: Arc = Arc::new(array); + let boxed: ArrayRef = Arc::new(array); let col: Int32Array = PrimitiveArray::::from(boxed.data().clone()); let err = col.into_builder();