Martin Tzvetanov Grigorov created AVRO-3433:
-----------------------------------------------

             Summary: Rust: The canonical form should preserve schema references
                 Key: AVRO-3433
                 URL: https://issues.apache.org/jira/browse/AVRO-3433
             Project: Apache Avro
          Issue Type: Bug
          Components: rust
    Affects Versions: 1.12.0
            Reporter: Martin Tzvetanov Grigorov
            Assignee: Martin Tzvetanov Grigorov


Reported at 
[https://github.com/flavray/avro-rs/issues/182#issuecomment-1059762821]

=================================

There still seems to be an issue with {{can't refine}} errors, at least in some 
non-recursive cases. Take the following example:
{code:java}
fn main() {
    let schema = r#"
    {
      "name": "test.test",
      "type": "record",
      "fields": [
        {
          "name": "bar",
          "type": { "name": "test.foo", "type": "record", "fields": [{ "name": 
"id", "type": "long" }] }
        },
        { "name": "baz", "type": "test.foo" }
      ]
    }
    "#;

    let schema = apache_avro::schema::Schema::parse_str(&schema).unwrap();

    println!("{}", serde_json::to_string(&schema).unwrap());
} {code}
This prints the following (the same thing happens if the {{test.foo}} 
definition is in a separate file):
{code:java}
$ target/release/avro-test | jq
{
  "type": "record",
  "name": "test.test",
  "fields": [
    {
      "name": "bar",
      "type": {
        "type": "record",
        "name": "test.foo",
        "fields": [
          {
            "name": "id",
            "type": "long"
          }
        ]
      }
    },
    {
      "name": "baz",
      "type": {
        "type": "record",
        "name": "test.foo",
        "fields": [
          {
            "name": "id",
            "type": "long"
          }
        ]
      }
    }
  ]
} {code}
Which will cause the Java tooling to fail with the 
{{org.apache.avro.SchemaParseException: Can't redefine: test}} error above.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to