in crates/core/src/avro_to_arrow/schema.rs [229:273]
fn external_props(schema: &AvroSchema) -> HashMap<String, String> {
let mut props = HashMap::new();
match &schema {
AvroSchema::Record(RecordSchema {
doc: Some(ref doc), ..
})
| AvroSchema::Enum(EnumSchema {
doc: Some(ref doc), ..
})
| AvroSchema::Fixed(FixedSchema {
doc: Some(ref doc), ..
}) => {
props.insert("avro::doc".to_string(), doc.clone());
}
_ => {}
}
match &schema {
AvroSchema::Record(RecordSchema {
name: Name { namespace, .. },
aliases: Some(aliases),
..
})
| AvroSchema::Enum(EnumSchema {
name: Name { namespace, .. },
aliases: Some(aliases),
..
})
| AvroSchema::Fixed(FixedSchema {
name: Name { namespace, .. },
aliases: Some(aliases),
..
}) => {
let aliases: Vec<String> = aliases
.iter()
.map(|alias| aliased(alias, namespace.as_deref(), None))
.collect();
props.insert(
"avro::aliases".to_string(),
format!("[{}]", aliases.join(",")),
);
}
_ => {}
}
props
}