Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Parquet adopted the Variant type from Spark VariantEncoding.md and we completed an initial implementation of Variant:
This support includes:
- APIs for reading/writing Variant encoded data (
parquet-variant crate)
- APIs for converting to/from JSON (
parquet-variant-json crate)
- APIs for working with Arrow arrays of Variants, including kernels
cast_to_variant, variant_get and shred_variant
Describe the solution you'd like
There are still several areas for additional work, with tickets gathered below
API Finalization
Shredding Support
Full variant_get Support
** Full variant_to_arrow support
Infrastructure
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Parquet adopted the Variant type from Spark VariantEncoding.md and we completed an initial implementation of Variant:
This support includes:
parquet-variantcrate)parquet-variant-jsoncrate)cast_to_variant,variant_getandshred_variantDescribe the solution you'd like
There are still several areas for additional work, with tickets gathered below
API Finalization
variant_experimentalflag tovariantand remove warnings about being experimental #8297VarianttoVariantArray#8606VariantArray#8609PartialEqforVariantArray#8610VariantArrayiterable #8612Shredding Support
variant_get: untyped path access #8151variant_get: access asSome(DataType::Struct)(nested shredding) #8153FixedSizeBinary(16)shredding #8665Decimal128#8332Time64(Microsecond)#8334Struct#8336List#8337Full
variant_getSupportvariant_get: Access asVARIANT(Unshredding) #8154variant_get#8082variant_get#8086variant_get#8087VariantPath#8946** Full
variant_to_arrowsupportInfrastructure
BinaryArray/LargeBinaryArrayin addition toBinaryViewArrayfor Variant #8387ObjectBuilder::finishif possible #7960