Is your feature request related to a problem or challenge?
Follow up to #2188 (comment)
iceberg-rust writes via AsyncArrowWriter, which derives the Parquet schema from the Arrow schema. In parquet 58.1.0, that path only emits the VARIANT annotation when the field carries the parquet_variant_compute::VariantType extension type and variant_experimental is enabled (otherwise logical_type_for_struct is a stub returning None). I couldn't find a public per-field hook to inject the annotation onto a plain Struct(Binary,Binary).
So the real cost is: enable variant_experimental + attach the extension type to the field. Two risks that I see:
- Turning on the feature may change how the reader decodes a VARIANT-annotated group (native VariantArray instead of Struct{metadata,value}) — could break the current read path that expects the struct.
- New experimental dep surface.
Surfaced here: #2188 (comment)
Describe the solution you'd like
No response
Willingness to contribute
None
Is your feature request related to a problem or challenge?
Follow up to #2188 (comment)
iceberg-rust writes via
AsyncArrowWriter, which derives the Parquet schema from the Arrow schema. In parquet 58.1.0, that path only emits the VARIANT annotation when the field carries theparquet_variant_compute::VariantTypeextension type and variant_experimental is enabled (otherwise logical_type_for_struct is a stub returning None). I couldn't find a public per-field hook to inject the annotation onto a plainStruct(Binary,Binary).So the real cost is: enable
variant_experimental+ attach the extension type to the field. Two risks that I see:Surfaced here: #2188 (comment)
Describe the solution you'd like
No response
Willingness to contribute
None