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 2023/11/01 14:25:00 UTC
[jira] [Created] (AVRO-3898) [rust] compatibility fails with different namespaces
Santiago Fraire Willemoes created AVRO-3898:
-----------------------------------------------
Summary: [rust] compatibility fails with different namespaces
Key: AVRO-3898
URL: https://issues.apache.org/jira/browse/AVRO-3898
Project: Apache Avro
Issue Type: Bug
Components: rust
Affects Versions: 1.11.3
Reporter: Santiago Fraire Willemoes
*Current behavior*
SchemaCompatibility does not work properly when `namespace` is present.
The following schemas are `FORWARD` compatible.
{code}
use avro_rs::{Schema, schema_compatibility::SchemaCompatibility};
let schema_1 = Schema::parse_str(r#"{
"type": "record",
"name": "Statistics",
"fields": [
{ "name": "succes", "type": "int" },
{ "name": "fail", "type": "int" },
{ "name": "time", "type": "string" },
{ "name": "max", "type": "int", "default": 0 }
]
}#").unwrap();
let schema_2 = Schema::parse_str(r#"{
"type": "record",
"name": "Statistics",
"fields": [
{ "name": "succes", "type": "int" },
{ "name": "fail", "type": "int" },
{ "name": "time", "type": "string" },
{ "name": "average", "type": "int"}
]
}#").unwrap();
{code}
When using `SchemaCompatibility::can_read(...)` the result is `true`:
{code}
assert_eq!(true, SchemaCompatibility::can_read(&schema_1, &schema_2););
{code}
*However*, when the `namespace` is added then the result is `false`
{code}
let schema_3 = Schema::parse_str(r#"{
"type": "record",
"name": "Statistics",
"namespace": "my.namespace"
"fields": [
{ "name": "succes", "type": "int" },
{ "name": "fail", "type": "int" },
{ "name": "time", "type": "string" },
{ "name": "max", "type": "int", "default": 0 }
]
}#").unwrap();
assert_eq!(false, SchemaCompatibility::can_read(&schema_3, &schema_2););
{code}
*Desired behavior*
Namespace should not affect compatibility
*Notes*
- My team is going to provide a PR soon to fix it
--
This message was sent by Atlassian Jira
(v8.20.10#820010)