Skip to content

Conversation

@shenodaguirguis
Copy link

Iceberg currently uses Avro 1.9, which throws an Exception for Malformed/wrong-typed default values. Now that we added support for default-values in Iceberg, for ORC and AVRO formats, this might cause trouble with ecosystems that uses AVRO 1.7, which only warns about malformed/wrong-typed defaults values and silently sets no-default-value. Avro 1.10.2 provides an API that gives the caller the option to skip validating the default value.
Note: it will still fail at the Iceberg schema level, given wronged-typed default value, which will give the caller the meaningful error to correct their schema.

@shenodaguirguis
Copy link
Author

@rzhang10 FYI

@rzhang10
Copy link
Member

I see a comment in upstream #1648 apache/iceberg#1648 (comment) , should we also consider using 1.10.1 instead of 1.10.2 ?

@shenodaguirguis
Copy link
Author

I see a comment in upstream #1648 apache/iceberg#1648 (comment) , should we also consider using 1.10.1 instead of 1.10.2 ?

@rzhang10 the avro parser feature to disable defaults validation exists starting avro 1.10.2, and this PR is mainly to use it. And yes I saw that comment and spent significant time to fix the jackson issue (the changes in build.gradle, specifically force 'com.fasterxml.jackson.core:jackson-databind:2.10.2'). I also created jar and tested with spark-shell, so we should be good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants