You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Santiago Fraire Willemoes (Jira)" <ji...@apache.org> on 2024/09/10 10:11:00 UTC

[jira] [Created] (AVRO-4055) [rust] schema parsing invalid

Santiago Fraire Willemoes created AVRO-4055:
-----------------------------------------------

             Summary: [rust] schema parsing invalid
                 Key: AVRO-4055
                 URL: https://issues.apache.org/jira/browse/AVRO-4055
             Project: Apache Avro
          Issue Type: Bug
          Components: rust
            Reporter: Santiago Fraire Willemoes


Parsing a schema like this should be invalid on rust, but rust parses the schema without raising errors:

{code}
{
  "type": "record",
  "name": "SampleSchema",
  "fields": [
    {
      "name": "order",
      "type": "record",
      "fields": [
        {
          "name": "order_number",
          "type": ["null", "string"],
          "default": null
        },
        { "name": "order_date", "type": "string" }
      ]
    }
  ]
}
{code}

Sample code:
{code}
use apache_avro::Schema;

let raw_schema = r#"
{
  "type": "record",
  "name": "SampleSchema",
  "fields": [
    {
      "name": "order",
      "type": "record",
      "fields": [
        {
          "name": "order_number",
          "type": ["null", "string"],
          "default": null
        },
        { "name": "order_date", "type": "string" }
      ]
    }
  ]
}
"#;

// if the schema is not valid, this function will return an error
let schema = Schema::parse_str(raw_schema).unwrap();

// schemas can be printed for debugging
println!("{:?}", schema);
{code}

Why is this important? Other tools like in Java are not able to parse this schema, making compatibility between different languages harder.

We've had issues using `avro-tools` to build the jars.

I can try to fix it, let me know if you want me to send a PR.

Regards




--
This message was sent by Atlassian Jira
(v8.20.10#820010)