Uh oh!
There was an error while loading. Please reload this page.
GH-3070: Add Variant logical type annotation to parquet-java - #3072
Conversation
aihuaxu
commented
Nov 22, 2024
wgtmac
commented
Nov 22, 2024
Do we need to support writing and reading variant data? |
aihuaxu
commented
Nov 22, 2024
The Variant reading and writing are getting implemented in Iceberg and/or the engines themselves. I think later we can think of pulling the implementation to Parquet if needed. |
emkornfield
commented
Nov 23, 2024
I think this is problematic if the spec lives in parquet and doesn't have a complete implementation per previously agreed upon guidelines for new parquet features. This probably warrants a discussion on the mailing list. CC @julienledem@rdblue@RussellSpitzer |
Fokko
commented
Nov 26, 2024
@aihuaxu I agree with @emkornfield that the It would also be great to drop some example parquet files in https://github.com/apache/parquet-testing, this will also help the adoption of other implementations, see apache/parquet-format#456 (comment) |
wgtmac
commented
Nov 26, 2024
Usually we need two reference implementations for spec changes like this. I'm not sure if there is any chance to have another implementation ready in a timely manner. IMO, at least parquet-java should support basic roundtrip read and write. |
aihuaxu
commented
Nov 26, 2024
I see. Per guideline, we need to have the implementation in parquet-java and then another one. Do we usually include the implementation with this annotation change or should be separate?
|
wgtmac
commented
Nov 27, 2024
I think it should be in one change. The parquet-format cannot be released without concrete PoC implementation in parquet-java. Without that release, separate changes may break CI and thus cannot be merged. |
aihuaxu
commented
Feb 22, 2025
@wgtmac With https://github.com/apache/parquet-java/pull/3117/files implementing encoding/decoding, should we consider merging this separately? |
wgtmac
commented
Feb 23, 2025
I think at least it needs the conversion from/to thrift definition of the variant type. So we need to wait for the release of parquet-format 2.11.0. |
Uh oh!
There was an error while loading. Please reload this page.
9473e1f to
e7c97e6CompareUh oh!
There was an error while loading. Please reload this page.
b67c034 to
a683f6aCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
af4576a to
ba4bbdfCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
20d29b5 to
707a0a0CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
59bad9e to
3dcb486Comparec717a05 to
eb679e8CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
rdblue
commented
Apr 17, 2025
Thanks, @aihuaxu! And thanks to @emkornfield for taking a look as well. |
Rationale for this change
This is to add Variant logical type in parquet-java to be used by dependent projects.
What changes are included in this PR?
The
Variantlogical type has been added to LogicalTypeAnnotation. For variant columns, the corresponding Parquet group is annotated as VARIANT(), indicating that the variant data may be encoded according to the specified or lower version. Readers can use this version information to validate compatibility and fail early if the version is not supported.Are these changes tested?
Yes.
Are there any user-facing changes?
Yes. Variant logical type is available.
Closes#3070