in crates/core/src/avro_to_arrow/arrow_array_reader.rs [832:849]
fn flatten_string_values(values: &[&Value]) -> Vec<Option<String>> {
values
.iter()
.flat_map(|row| {
let row = maybe_resolve_union(row);
if let Value::Array(values) = row {
values
.iter()
.map(|s| resolve_string(s).ok().flatten())
.collect::<Vec<Option<_>>>()
} else if let Value::Null = row {
vec![]
} else {
vec![resolve_string(row).ok().flatten()]
}
})
.collect::<Vec<Option<_>>>()
}