This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch avro-3709-add-aliases-to-record-fields
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to
refs/heads/avro-3709-add-aliases-to-record-fields by this push:
new eb552f9d2 AVRO-3709: [Rust] Record field's aliases don't have namespace
eb552f9d2 is described below
commit eb552f9d28744f93d56d7c6fc2697cf992c2ab4e
Author: Martin Tzvetanov Grigorov <[email protected]>
AuthorDate: Wed Feb 8 12:05:45 2023 +0200
AVRO-3709: [Rust] Record field's aliases don't have namespace
Use String instead of Alias.
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
---
lang/rust/avro/src/schema.rs | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/lang/rust/avro/src/schema.rs b/lang/rust/avro/src/schema.rs
index 80f79917e..bcdf8064b 100644
--- a/lang/rust/avro/src/schema.rs
+++ b/lang/rust/avro/src/schema.rs
@@ -564,8 +564,8 @@ pub struct RecordField {
/// Documentation of the field.
pub doc: Documentation,
- /// Aliases of the field.
- pub aliases: Aliases,
+ /// Aliases of the field's name. They have no namespace.
+ pub aliases: Option<Vec<String>>,
/// Default value of the field.
/// This value will be used when reading Avro datum if schema resolution
/// is enabled.
@@ -611,8 +611,8 @@ impl RecordField {
aliases
.iter()
.flat_map(|alias| alias.as_str())
- .map(|alias| Alias::new(alias).expect("Alias is not
valid"))
- .collect::<Vec<Alias>>()
+ .map(|alias| alias.to_string())
+ .collect::<Vec<String>>()
})
});
@@ -1285,8 +1285,7 @@ impl Parser {
if let Some(ref field_aliases) = field.aliases {
for alias in field_aliases {
- let alias = alias.fullname(enclosing_namespace.clone());
- lookup.insert(alias, field.position);
+ lookup.insert(alias.clone(), field.position);
}
}
}
@@ -4338,15 +4337,11 @@ mod tests {
}
"#;
- fn alias(name: &str) -> Alias {
- Alias::new(name).unwrap()
- }
-
let schema = Schema::parse_str(schema).unwrap();
if let Schema::Record { fields, .. } = schema {
let num_field = &fields[0];
assert_eq!(num_field.name, "num");
- assert_eq!(num_field.aliases, Some(vec!(alias("num1"),
alias("num2"))));
+ assert_eq!(num_field.aliases, Some(vec!("num1".into(),
"num2".into())));
} else {
panic!("Expected a record schema!");
}