You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "Martin Tzvetanov Grigorov (Jira)" <ji...@apache.org> on 2024/04/05 08:07:00 UTC

[jira] [Commented] (AVRO-3970) [Rust] incorrect compatibility checks with logicalType uuid

    [ https://issues.apache.org/jira/browse/AVRO-3970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17834188#comment-17834188 ] 

Martin Tzvetanov Grigorov commented on AVRO-3970:
-------------------------------------------------

Please send a Pull Request with your changes!
If there are more missing logical types then they could be improved in more PRs!
Thank you!

> [Rust] incorrect compatibility checks with logicalType uuid
> -----------------------------------------------------------
>
>                 Key: AVRO-3970
>                 URL: https://issues.apache.org/jira/browse/AVRO-3970
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: rust
>            Reporter: mknaw
>            Priority: Minor
>
> A schema with a logicalType uuid field is incompatible with itself, per `SchemaCompatibility`:
>  
> {code:java}
> use apache_avro::{Schema, schema_compatibility::SchemaCompatibility};
> fn main() {     
>     let schema_str = r#"\{"type": "string", "logicalType": "uuid"}"#;
>     let writers_schema = Schema::parse_str(schema_str).unwrap();
>     let readers_schema = Schema::parse_str(schema_str).unwrap();
>     if let Err(err) = SchemaCompatibility::can_read(&writers_schema, &readers_schema) {
>         eprintln!("Error: {}", err);
>     }
> }
> {code}
>  
> this is the behavior on `main` as of writing (`876eae32`) and on the latest version on crates.rs (`v0.16.0`)
> I have a proposed fix here: [https://github.com/apache/avro/compare/main...mknaw:avro:logical-type-compat-fix]
> Perhaps there are other valid logicalTypes with this behavior. I have not checked every logicalType yet.



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