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

commit 0b91cff61d7d66d00bb582f919eef65612cea332
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!");
         }

Reply via email to