Skip to content

Commit 8aa7126

Browse files
committed
fix reading list columns
1 parent 6ed80d3 commit 8aa7126

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

metropolis-core/src/io/arrow.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -219,22 +219,24 @@ macro_rules! get_id_list_column {
219219
let u64listdtype = DataType::new_list(DataType::UInt64, false);
220220
let column = get_column(&$array, &[$($name),+])
221221
.unwrap_or_else(|| new_null_array(&u64listdtype, $array.len()));
222-
match column.data_type() {
223-
DataType::List(field) => {
224-
if field.data_type().is_unsigned_integer() {
225-
IdListArray::Unsigned(column.as_any().downcast_ref::<ListArray>().unwrap().clone())
226-
} else if field.data_type().is_integer() {
227-
IdListArray::Integer(column.as_any().downcast_ref::<ListArray>().unwrap().clone())
228-
} else {
229-
let strlistdtype = DataType::new_list(DataType::Utf8, false);
230-
let str_column = cast_column(&column, &strlistdtype, &[$($name),+])?;
231-
IdListArray::Arbitrary(str_column.as_any().downcast_ref::<ListArray>().unwrap().clone())
232-
}
233-
}
222+
let inner_field = match column.data_type() {
223+
DataType::List(field) => field,
224+
DataType::ListView(field) => field,
225+
DataType::LargeList(field) => field,
226+
DataType::LargeListView(field) => field,
234227
_ => {
235228
let full_name = &[$($name),+].join(".");
236229
bail!("Not a List column: {full_name}");
237230
}
231+
};
232+
if inner_field.data_type().is_unsigned_integer() {
233+
IdListArray::Unsigned(column.as_any().downcast_ref::<ListArray>().unwrap().clone())
234+
} else if inner_field.data_type().is_integer() {
235+
IdListArray::Integer(column.as_any().downcast_ref::<ListArray>().unwrap().clone())
236+
} else {
237+
let strlistdtype = DataType::new_list(DataType::Utf8, false);
238+
let str_column = cast_column(&column, &strlistdtype, &[$($name),+])?;
239+
IdListArray::Arbitrary(str_column.as_any().downcast_ref::<ListArray>().unwrap().clone())
238240
}
239241
}
240242
};

0 commit comments

Comments
 (0)