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)