You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "Marcos Schroh (Jira)" <ji...@apache.org> on 2024/02/27 10:55:00 UTC

[jira] [Commented] (AVRO-3950) [rust] Some code when checking schema compatibility is never reached

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

Marcos Schroh commented on AVRO-3950:
-------------------------------------

I can work in a PR to refactor the code

> [rust] Some code when checking schema compatibility is never reached
> --------------------------------------------------------------------
>
>                 Key: AVRO-3950
>                 URL: https://issues.apache.org/jira/browse/AVRO-3950
>             Project: Apache Avro
>          Issue Type: Improvement
>            Reporter: Marcos Schroh
>            Priority: Minor
>
> When checking schema compatibility between schemas some code blocks are never reached. For example, [these lines |https://github.com/apache/avro/blob/main/lang/rust/avro/src/schema_compatibility.rs#L365-L374] are never reached because writer and readers schemas are for sure the same type (record) which is [previously compared|https://github.com/apache/avro/blob/main/lang/rust/avro/src/schema_compatibility.rs#L346].
> This issue leads to unnecessary *if let* blocks which can be suppressed and `Errors` that are never reached.  For example the following code could be removed because it is know before hand that the schema is Record which it has a name and only one error can be retrieved. 
> {code}
>  let Schema::Record(RecordSchema { name: w_name, .. }) = writers_schema { ... } 
> {code}
> *Solution*: Refactor the code and add more unittest to match_schemas function to clean up the unreachable code



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