You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#5407 implements the ordinary-Parquet phase of #4295, but it now combines several independently reviewable concerns: shared Arrow FFI schema export, Variant logical-type transport, native whole-value normalization, Spark-compatible Parquet physical semantics, and scan admission/schema-evolution defaults.
This issue tracks re-landing that work as five atomic pull requests under the broader Variant roadmap in #5438, following the maintainer request in #5407 (comment).
Scope
Support direct, top-level, whole-value VariantType projection from ordinary Parquet:
SELECT v FROM parquet_table;
SELECT id, v, tail FROM parquet_table;
The completed series preserves Variant identity through:
Spark VariantType
-> Comet protobuf
-> marked Arrow Field
-> ordinary native Parquet scan
-> whole-value normalization
-> Arrow C Data Interface
-> CometStructVector
-> ColumnVector.getVariant
This tracker does not include Iceberg, nested Variant, Variant expressions, subfield pruning, predicate pushdown, writes, columnar-to-row, shuffle/spill, or Python transport.
What problem does this solve?
#5407 implements the ordinary-Parquet phase of #4295, but it now combines several independently reviewable concerns: shared Arrow FFI schema export, Variant logical-type transport, native whole-value normalization, Spark-compatible Parquet physical semantics, and scan admission/schema-evolution defaults.
This issue tracks re-landing that work as five atomic pull requests under the broader Variant roadmap in #5438, following the maintainer request in #5407 (comment).
Scope
Support direct, top-level, whole-value
VariantTypeprojection from ordinary Parquet:The completed series preserves Variant identity through:
This tracker does not include Iceberg, nested Variant, Variant expressions, subfield pruning, predicate pushdown, writes, columnar-to-row, shuffle/spill, or Python transport.
Ordered subtasks
Each pull request must include focused tests and retain explicit Spark fallback until the complete scan boundary is ready.
Definition of done
VariantTypewith exactly[value, metadata]children.VariantStruct, native writes, C2R, shuffle/spill, Python operators, and Iceberg retain explicit fallback.Related work
VariantStruct