diff --git a/arrow-array/src/array/struct_array.rs b/arrow-array/src/array/struct_array.rs index 841d3235f64..fd2647abd83 100644 --- a/arrow-array/src/array/struct_array.rs +++ b/arrow-array/src/array/struct_array.rs @@ -67,8 +67,8 @@ impl StructArray { } /// Returns the fields of the struct array - pub fn columns(&self) -> Vec<&ArrayRef> { - self.boxed_fields.iter().collect() + pub fn columns(&self) -> &[ArrayRef] { + &self.boxed_fields } /// Returns child array refs of the struct array diff --git a/arrow-ipc/src/writer.rs b/arrow-ipc/src/writer.rs index dec44de177f..0497cbe5e47 100644 --- a/arrow-ipc/src/writer.rs +++ b/arrow-ipc/src/writer.rs @@ -177,7 +177,7 @@ impl IpcDataGenerator { match column.data_type() { DataType::Struct(fields) => { let s = as_struct_array(column); - for (field, &column) in fields.iter().zip(s.columns().iter()) { + for (field, column) in fields.iter().zip(s.columns()) { self.encode_dictionaries( field, column,