HIVE-30035: Upgrade to Parquet 1.18.0 - #6774
Open
abstractdog wants to merge 2 commits into
Open
abstractdog wants to merge 2 commits into
abstractdog wants to merge 2 commits into
Conversation
Member
|
@abstractdog, we need this in iceberg pom.xml or drop the |
abstractdog
force-pushed
the
HIVE-30035
branch
from
September 15, 2026 08:03
976fd89 to
3fce44c
Compare
Contributor
Author
|
@deniskuzZ : this is now ready for review |
deniskuzZ
reviewed
Sep 15, 2026
deniskuzZ
reviewed
Sep 15, 2026
abstractdog
force-pushed
the
HIVE-30035
branch
from
September 16, 2026 06:50
3fce44c to
04014b1
Compare
Member
|
restarted CI |
abstractdog
force-pushed
the
HIVE-30035
branch
from
September 17, 2026 06:23
04014b1 to
9e1f961
Compare
iceberg-data brings parquet-avro, and iceberg-shading bundles org.apache.parquet into the shaded Iceberg jar without relocating it. Left alone that puts Parquet 1.17.1 classes on the classpath beside Hive's 1.18.0. Pin parquet-avro, the root of that subtree, in the Iceberg pom where the bundle is built, rather than managing Parquet artifacts for the whole build. The version comes from iceberg.parquet.version, alongside the existing iceberg.avro.version. It defaults to parquet.version and has to stay equal to it, since the embedded classes keep their original package names. Update TestHiveSchemaConverter for Parquet 1.18: ConversionPatterns.mapType no longer stamps the deprecated MAP_KEY_VALUE annotation on the inner key_value group of a MAP (the Parquet MAP standard treats it as redundant), so drop it from the expected schema strings and expect a null annotation in testMapOriginalType.
abstractdog
force-pushed
the
HIVE-30035
branch
from
September 17, 2026 09:16
9e1f961 to
829b6c1
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What changes were proposed in this pull request?
Bump
parquet.versionfrom 1.16.0 → 1.18.0 in the rootpom.xml, and pinparquet-avroto the same version iniceberg/pom.xml's<dependencyManagement>via a newiceberg.parquet.versionproperty (defaulting to${parquet.version}).Also update
TestHiveSchemaConverter:(MAP_KEY_VALUE)from the 5 expected schema strings.nullannotation instead ofMapKeyValueTypeAnnotation.getInstance()intestMapOriginalType.Why are the changes needed?
iceberg-databringsparquet-avrotransitively, andiceberg-shadingbundlesorg.apache.parquet:*into the shaded Iceberg jar without relocating it:Confirmed on the built shaded jar:
org/apache/hive/iceberg/…prefixorg/apache/parquet/…org/apache/avro/…(control)Left alone,
iceberg-data's transitive Parquet 1.17.1 classes would sit atorg.apache.parquet.*next to Hive's 1.18.0 classes at the same coordinates. Pinningparquet-avro(the root of the subtree the bundle embeds) in the Iceberg pom forces the two onto one version. Managing it at the root would spread Parquet artifact overrides across the whole build for what is really an Iceberg-bundle concern.The
TestHiveSchemaConverterchanges follow from a Parquet 1.18 behavior change:ConversionPatterns.mapTypeno longer stamps the deprecatedMAP_KEY_VALUEannotation on a MAP's innerkey_valuegroup — the Parquet MAP standard treats it as redundant.Does this PR introduce any user-facing change?
MAP<K,V>column no longer stamp the deprecatedMAP_KEY_VALUEannotation on the innerkey_valuegroup — following Parquet 1.18'sConversionPatterns.mapType, which the Parquet MAP standard treats as redundant. Old files remain readable; standards-compliant readers rely on the outerMAPannotation and are unaffected. Tools that inspect the raw schema (e.g.parquet-tools) will showrepeated group key_value { … }instead ofrepeated group key_value (MAP_KEY_VALUE) { … }.How was this patch tested?
mvn -pl ql test -Dtest=TestHiveSchemaConverter: