[
https://issues.apache.org/jira/browse/AVRO-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17862674#comment-17862674
]
Martin Tzvetanov Grigorov commented on AVRO-4011:
-------------------------------------------------
Could you please try with 0.17 (from `main` branch). There were many
improvements in the schema_compatibility.rs code that are not yet released.
> Schema generated via AvroSchema is not compatible with itself
> -------------------------------------------------------------
>
> Key: AVRO-4011
> URL: https://issues.apache.org/jira/browse/AVRO-4011
> Project: Apache Avro
> Issue Type: Bug
> Components: rust
> Affects Versions: 1.11.3
> Environment: Rust 1.79.0
> Reporter: Marco Lugo
> Priority: Minor
>
> We encountered an issue where our Avro schema generated with the AvroSchema
> macro is not compatible with itself. That is, the
> [can_read|https://docs.rs/apache-avro/latest/apache_avro/schema_compatibility/struct.SchemaCompatibility.html#method.can_read]
> function fails to read the generated schema. Here's a minimal reproducible
> example:
> {code:c}
> use apache_avro::AvroSchema;
> #[derive(AvroSchema)]
> struct Foo {
> a: Vec<Bar>,
> b: Vec<Bar>,
> }
> #[derive(AvroSchema)]
> struct Bar {
> value: i32,
> }
> #[cfg(test)]
> mod tests {
> use super::*;
> #[test]
> fn schema_reflexivity() {
> let schema = Foo::get_schema();
> println!("{}", &schema.canonical_form());
> assert_eq!(&schema, &schema);
>
> assert!(apache_avro::schema_compatibility::SchemaCompatibility::can_read(&schema,
> &schema)); // this fails
> }
> }
> {code}
> This is with the only dependency in Cargo.toml being:
> {code:java}
> apache-avro = { version = "0.16.0", features = ["derive"] }
> {code}
> The automatically generated Avro schema is:
> {code:json}
> {
> "name": "Foo",
> "type": "record",
> "fields": [
> {
> "name": "a",
> "type": {
> "type": "array",
> "items": {
> "name": "Bar",
> "type": "record",
> "fields": [
> {
> "name": "value",
> "type": "int"
> }
> ]
> }
> }
> },
> {
> "name": "b",
> "type": {
> "type": "array",
> "items": "Bar"
> }
> }
> ]
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)