Description
Currently Hive depends on Avro 1.8.2 whereas Iceberg depends on 1.9.2.
In the Iceberg Connector, we exclude Avro dependency from iceberg-core, so Iceberg has been run with Avro 1.8.2 in Presto. It turns out to be fine for Iceberg 0.9.0 because it doesn't seem to be using any class not available in Avro 1.8.2. However, a new version Iceberg 0.10.0-rc0 breaks because it uses a class InvalidAvroMagicException
that is not available in Avro 1.8.2. As a result, this Avro version conflict becomes a blocker for us to bump Iceberg version.
To resolve this, we can consider:
- Bump Hive's Avro version to 1.9.2.
- Bump both Hive's Avro version and Iceberg's to 1.10.0.
- Keep Iceberg's Avro version as 1.9.2 but try to avoid using classes that are not available in 1.8.2
- De-bump Iceberg's Avro version to 1.8.2.
@electrum @rdblue @Fokko Could you folks take a look and comment?
FYI I tried to rebase #4776 but it depends on a fix in Iceberg 0.10.0-rc0 to pass some test cases in AbstractTestIcebergSmoke
.