You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by tu...@apache.org on 2022/11/23 08:53:28 UTC

[arrow-rs] branch master updated: Remove unnecessary downcasts in builders (#3166)

This is an automated email from the ASF dual-hosted git repository.

tustvold pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new fa513333a Remove unnecessary downcasts in builders (#3166)
fa513333a is described below

commit fa513333abf25ee6938d1df98554538324a7069b
Author: Raphael Taylor-Davies <17...@users.noreply.github.com>
AuthorDate: Wed Nov 23 08:53:23 2022 +0000

    Remove unnecessary downcasts in builders (#3166)
---
 arrow-array/src/builder/fixed_size_list_builder.rs | 11 +++--------
 arrow-array/src/builder/generic_list_builder.rs    |  7 +------
 arrow-array/src/builder/map_builder.rs             | 14 ++------------
 3 files changed, 6 insertions(+), 26 deletions(-)

diff --git a/arrow-array/src/builder/fixed_size_list_builder.rs b/arrow-array/src/builder/fixed_size_list_builder.rs
index e15708ed6..f6388d789 100644
--- a/arrow-array/src/builder/fixed_size_list_builder.rs
+++ b/arrow-array/src/builder/fixed_size_list_builder.rs
@@ -111,16 +111,11 @@ where
     /// Builds the [`FixedSizeListBuilder`] and reset this builder.
     pub fn finish(&mut self) -> FixedSizeListArray {
         let len = self.len();
-        let values_arr = self
-            .values_builder
-            .as_any_mut()
-            .downcast_mut::<T>()
-            .unwrap()
-            .finish();
+        let values_arr = self.values_builder.finish();
         let values_data = values_arr.data();
 
-        assert!(
-            values_data.len() == len * self.list_len as usize,
+        assert_eq!(
+            values_data.len(), len * self.list_len as usize,
             "Length of the child array ({}) must be the multiple of the value length ({}) and the array length ({}).",
             values_data.len(),
             self.list_len,
diff --git a/arrow-array/src/builder/generic_list_builder.rs b/arrow-array/src/builder/generic_list_builder.rs
index f07757971..116567864 100644
--- a/arrow-array/src/builder/generic_list_builder.rs
+++ b/arrow-array/src/builder/generic_list_builder.rs
@@ -115,12 +115,7 @@ where
     /// Builds the [`GenericListArray`] and reset this builder.
     pub fn finish(&mut self) -> GenericListArray<OffsetSize> {
         let len = self.len();
-        let values_arr = self
-            .values_builder
-            .as_any_mut()
-            .downcast_mut::<T>()
-            .unwrap()
-            .finish();
+        let values_arr = self.values_builder.finish();
         let values_data = values_arr.data();
 
         let offset_buffer = self.offsets_builder.finish();
diff --git a/arrow-array/src/builder/map_builder.rs b/arrow-array/src/builder/map_builder.rs
index 71ca8480a..4b7597248 100644
--- a/arrow-array/src/builder/map_builder.rs
+++ b/arrow-array/src/builder/map_builder.rs
@@ -107,18 +107,8 @@ impl<K: ArrayBuilder, V: ArrayBuilder> MapBuilder<K, V> {
         let len = self.len();
 
         // Build the keys
-        let keys_arr = self
-            .key_builder
-            .as_any_mut()
-            .downcast_mut::<K>()
-            .unwrap()
-            .finish();
-        let values_arr = self
-            .value_builder
-            .as_any_mut()
-            .downcast_mut::<V>()
-            .unwrap()
-            .finish();
+        let keys_arr = self.key_builder.finish();
+        let values_arr = self.value_builder.finish();
 
         let keys_field = Field::new(
             self.field_names.key.as_str(),