diff --git a/src/daft-core/src/array/growable/arrow_growable.rs b/src/daft-core/src/array/growable/arrow_growable.rs
index b63cc399c0..db8b4667ef 100644
--- a/src/daft-core/src/array/growable/arrow_growable.rs
+++ b/src/daft-core/src/array/growable/arrow_growable.rs
@@ -9,9 +9,8 @@ use crate::{
},
datatypes::{
BinaryType, BooleanType, DaftArrowBackedType, DaftDataType, ExtensionArray, Field,
- FixedSizeListType, Float32Type, Float64Type, Int128Type, Int16Type, Int32Type, Int64Type,
- Int8Type, ListType, NullType, StructType, UInt16Type, UInt32Type, UInt64Type, UInt8Type,
- Utf8Type,
+ Float32Type, Float64Type, Int128Type, Int16Type, Int32Type, Int64Type, Int8Type, ListType,
+ NullType, StructType, UInt16Type, UInt32Type, UInt64Type, UInt8Type, Utf8Type,
},
DataType, IntoSeries, Series,
};
@@ -170,11 +169,6 @@ impl_arrow_backed_data_array_growable!(
ListType,
arrow2::array::growable::GrowableList<'a, i64>
);
-impl_arrow_backed_data_array_growable!(
- ArrowFixedSizeListGrowable,
- FixedSizeListType,
- arrow2::array::growable::GrowableFixedSizeList<'a>
-);
impl_arrow_backed_data_array_growable!(
ArrowStructGrowable,
StructType,
diff --git a/src/daft-core/src/array/growable/mod.rs b/src/daft-core/src/array/growable/mod.rs
index 28ffc7222a..e6ca4d8c5d 100644
--- a/src/daft-core/src/array/growable/mod.rs
+++ b/src/daft-core/src/array/growable/mod.rs
@@ -6,15 +6,17 @@ use crate::{
DateArray, Decimal128Array, DurationArray, EmbeddingArray, FixedShapeImageArray,
FixedShapeTensorArray, ImageArray, TensorArray, TimestampArray,
},
- BinaryArray, BooleanArray, ExtensionArray, FixedSizeListArray, Float32Array, Float64Array,
- Int128Array, Int16Array, Int32Array, Int64Array, Int8Array, ListArray, NullArray,
- StructArray, UInt16Array, UInt32Array, UInt64Array, UInt8Array, Utf8Array,
+ nested_arrays::FixedSizeListArray,
+ BinaryArray, BooleanArray, ExtensionArray, Float32Array, Float64Array, Int128Array,
+ Int16Array, Int32Array, Int64Array, Int8Array, ListArray, NullArray, StructArray,
+ UInt16Array, UInt32Array, UInt64Array, UInt8Array, Utf8Array,
},
DataType, Series,
};
mod arrow_growable;
mod logical_growable;
+mod nested_growable;
#[cfg(feature = "python")]
mod python_growable;
@@ -120,7 +122,7 @@ impl_growable_array!(Utf8Array, arrow_growable::ArrowUtf8Growable<'a>);
impl_growable_array!(ListArray, arrow_growable::ArrowListGrowable<'a>);
impl_growable_array!(
FixedSizeListArray,
- arrow_growable::ArrowFixedSizeListGrowable<'a>
+ nested_growable::FixedSizeListGrowable<'a>
);
impl_growable_array!(StructArray, arrow_growable::ArrowStructGrowable<'a>);
impl_growable_array!(ExtensionArray, arrow_growable::ArrowExtensionGrowable<'a>);
diff --git a/src/daft-core/src/array/growable/nested_growable.rs b/src/daft-core/src/array/growable/nested_growable.rs
new file mode 100644
index 0000000000..62a530b281
--- /dev/null
+++ b/src/daft-core/src/array/growable/nested_growable.rs
@@ -0,0 +1,120 @@
+use std::mem::swap;
+
+use common_error::DaftResult;
+
+use crate::{
+ datatypes::{nested_arrays::FixedSizeListArray, Field},
+ with_match_daft_types, DataType, IntoSeries, Series,
+};
+
+use super::{Growable, GrowableArray};
+
+pub struct ArrowBitmapGrowable<'a> {
+ bitmap_refs: Vec