From 60c76120829d6a62c63d820446d81e13db8134d5 Mon Sep 17 00:00:00 2001 From: Colin Jermain Date: Wed, 7 Jun 2023 21:02:07 -0400 Subject: [PATCH 1/2] Adding new constructor for MutableListArray --- src/array/list/mutable.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/array/list/mutable.rs b/src/array/list/mutable.rs index 8841ceaf53..6a4aa623a0 100644 --- a/src/array/list/mutable.rs +++ b/src/array/list/mutable.rs @@ -142,6 +142,22 @@ impl MutableListArray { Self::new_from(values, data_type, capacity) } + /// Creates a new [`MutableListArray`] from a [`MutableArray`], [`Offsets`] and + /// [`MutableBitmap`]. + pub fn new_from_mutable( + values: M, + offsets: Offsets, + validity: Option, + ) -> Self { + let data_type = values.data_type().clone(); + Self { + data_type, + offsets, + values, + validity, + } + } + #[inline] /// Needs to be called when a valid value was extended to this array. /// This is a relatively low level function, prefer `try_push` when you can. From 3557894fa4e79504e204ae2c1ee2d757714aec48 Mon Sep 17 00:00:00 2001 From: Colin Jermain Date: Sun, 18 Jun 2023 21:09:22 -0400 Subject: [PATCH 2/2] Asserting values length equals last element of offset --- src/array/list/mutable.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/array/list/mutable.rs b/src/array/list/mutable.rs index 6a4aa623a0..2bb39dea87 100644 --- a/src/array/list/mutable.rs +++ b/src/array/list/mutable.rs @@ -149,6 +149,7 @@ impl MutableListArray { offsets: Offsets, validity: Option, ) -> Self { + assert_eq!(values.len(), offsets.last().to_usize()); let data_type = values.data_type().clone(); Self { data_type,