in crates/core/src/avro_to_arrow/arrow_array_reader.rs [398:422]
fn build_string_dictionary_array(
&self,
rows: RecordSlice,
col_name: &str,
key_type: &DataType,
value_type: &DataType,
) -> ArrowResult<ArrayRef> {
if let DataType::Utf8 = *value_type {
match *key_type {
DataType::Int8 => self.build_dictionary_array::<Int8Type>(rows, col_name),
DataType::Int16 => self.build_dictionary_array::<Int16Type>(rows, col_name),
DataType::Int32 => self.build_dictionary_array::<Int32Type>(rows, col_name),
DataType::Int64 => self.build_dictionary_array::<Int64Type>(rows, col_name),
DataType::UInt8 => self.build_dictionary_array::<UInt8Type>(rows, col_name),
DataType::UInt16 => self.build_dictionary_array::<UInt16Type>(rows, col_name),
DataType::UInt32 => self.build_dictionary_array::<UInt32Type>(rows, col_name),
DataType::UInt64 => self.build_dictionary_array::<UInt64Type>(rows, col_name),
_ => Err(SchemaError("unsupported dictionary key type".to_string())),
}
} else {
Err(SchemaError(
"dictionary types other than UTF-8 not yet supported".to_string(),
))
}
}