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
After the schema, normalization, and physical-reader layers are ready, Comet still needs a deliberately narrow JVM admission path for direct top-level Variant projection and Spark-compatible behavior for missing columns and unsupported consumers.
Case-insensitive Unicode Variant projection remains native and matches Spark, covering a non-ASCII Variant root, an ordinary sibling beside Variant, and physical Kelvin sign K matched to logical k. Preserve Spark's missing-column behavior for physical ſ read as logical s.
Unsupported consumers above have focused fallback assertions.
Spark 4.0/4.1 profiles pass and Spark 3.5 still compiles unchanged.
Completing this issue closes the ordinary-Parquet phase of #4295. Iceberg and the broader shredded optimization scope in #3983 remain separate.
Problem
After the schema, normalization, and physical-reader layers are ready, Comet still needs a deliberately narrow JVM admission path for direct top-level Variant projection and Spark-compatible behavior for missing columns and unsupported consumers.
Parent: #5546
Depends on: #5550
Solution
VariantTypefields in ordinary native Parquet scans.[value, metadata]struct.CometStructVectorso inheritedColumnVector.getVariantworks.VariantStruct(Support Spark's pushed one-field VariantStruct (whole-value pushVariantIntoScan rewrite) in native Parquet scans #5519), strict malformed reads, expressions, writes, C2R, shuffle/spill, Python operators, encryption, and Iceberg on explicit Spark fallback where applicable.Tests
SELECT vandSELECT id, v, tailremain native and match Spark.VariantTypewith exact[value, metadata]Binary children.Kmatched to logicalk. Preserve Spark's missing-column behavior for physicalſread as logicals.Completing this issue closes the ordinary-Parquet phase of #4295. Iceberg and the broader shredded optimization scope in #3983 remain separate.