[
https://issues.apache.org/jira/browse/AVRO-3433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17502082#comment-17502082
]
ASF subversion and git services commented on AVRO-3433:
-------------------------------------------------------
Commit 80c01f7bacc3ddea784c68c40a51276520d62700 in avro's branch
refs/heads/avro-3433-preserve-schema-ref-in-json from Martin Tzvetanov Grigorov
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=80c01f7 ]
AVRO-3433: Name::new("...") should parse the optional namespace
This is a breaking change but a bug fix to properly implement the Avro
specification
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
> 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
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> 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)