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)