[ https://issues.apache.org/jira/browse/AVRO-3528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17545769#comment-17545769 ]
Oscar Westra van Holthe - Kind commented on AVRO-3528: ------------------------------------------------------ Personally, I like the change. I would opt to refactor the validation settings though. Currently there are two boolean properties for validations, and this would add a third. Can we reduce this to a single boolean (to disable all validations instead of only some)? Or should we use an EnumSet to select which validations to disable? > Optionally support strict LogicalType parsing > --------------------------------------------- > > Key: AVRO-3528 > URL: https://issues.apache.org/jira/browse/AVRO-3528 > Project: Apache Avro > Issue Type: Improvement > Components: java > Affects Versions: 1.11.0 > Reporter: Andrei Leibovski > Priority: Minor > > My organization uses Avro schemas extensively. We use Confluent schema > registry for data governance, enforcing data contracts between various > components. We are seeing proliferation of questionable LogicalType > structures within our schemas, like the following: > {code:java} > { > "namespace": "org.apache.avro.example", > "type": "record", > "name": "BadLogical", > "fields": [ > { > "name": "f0", > "type":{ > "type": "string", > "java-class": "java.math.BigDecimal", > "logicalType": "decimal", > "precision": 9, > "scale": 2 > } > } > ] > } {code} > There are two issues in the above structure: > # string is not allowed to back the decimal LogicalType > # java-class property and some others, are incompatible for any LogicalType > Currently Avro allows such structures to pass validation and has no option to > disallow them. Since Confluent schema registry delegates all avro schema > validation to Avro, these structures are allowed to be registered. > *Proposition:* > Implement an option to switch avro Schema.Parser to LogicalType strict mode > where such structures will be detected and disallowed. > The change is fairly trivial, most of the plumbing is already there. I have > implemented the required functionality and covered it with with tests, but I > would like to solicit some feedback on this proposal before submitting my PR. -- This message was sent by Atlassian Jira (v8.20.7#820007)