Expand description
Module for unshredding VariantArray by folding typed_value columns back into the value column.
Re-exportsยง
use crate::variant_array::binary_array_value;๐use crate::variant_array::validate_binary_array;๐use crate::VariantArray;๐use crate::VariantValueArrayBuilder;๐use arrow::array::Array;๐use arrow::array::ArrayRef;๐use arrow::array::AsArray as _;๐use arrow::array::BinaryArray;๐use arrow::array::BinaryViewArray;๐use arrow::array::BooleanArray;๐use arrow::array::FixedSizeBinaryArray;๐use arrow::array::GenericListArray;๐use arrow::array::GenericListViewArray;๐use arrow::array::LargeBinaryArray;๐use arrow::array::LargeStringArray;๐use arrow::array::ListLikeArray;๐use arrow::array::PrimitiveArray;๐use arrow::array::StringArray;๐use arrow::array::StringViewArray;๐use arrow::array::StructArray;๐use arrow::buffer::NullBuffer;๐use arrow::datatypes::ArrowPrimitiveType;๐use arrow::datatypes::DataType;๐use arrow::datatypes::Date32Type;๐use arrow::datatypes::Decimal32Type;๐use arrow::datatypes::Decimal64Type;๐use arrow::datatypes::Decimal128Type;๐use arrow::datatypes::DecimalType;๐use arrow::datatypes::Float32Type;๐use arrow::datatypes::Float64Type;๐use arrow::datatypes::Int8Type;๐use arrow::datatypes::Int16Type;๐use arrow::datatypes::Int32Type;๐use arrow::datatypes::Int64Type;๐use arrow::datatypes::Time64MicrosecondType;๐use arrow::datatypes::TimeUnit;๐use arrow::datatypes::TimestampMicrosecondType;๐use arrow::datatypes::TimestampNanosecondType;๐use arrow::error::ArrowError;๐use arrow::error::Result;๐use arrow::temporal_conversions::time64us_to_time;๐use chrono::DateTime;๐use chrono::Utc;๐use indexmap::IndexMap;๐use parquet_variant::ObjectFieldBuilder;๐use parquet_variant::Variant;๐use parquet_variant::VariantBuilderExt;๐use parquet_variant::VariantDecimal4;๐use parquet_variant::VariantDecimal8;๐use parquet_variant::VariantDecimal16;๐use parquet_variant::VariantDecimalType;๐use parquet_variant::VariantMetadata;๐use std::marker::PhantomData;๐use std::sync::Arc;๐use uuid::Uuid;๐
Macrosยง
- handle_
unshredded_ ๐case - Macro that handles the unshredded case (typed_value is missing or NULL) and returns early if handled. If not handled (shredded case), validates and returns the extracted value.
- impl_
append_ ๐to_ variant_ builder
Structsยง
- Decimal
Unshred ๐RowBuilder - Generic builder for decimal unshredding
- List
Unshred ๐Variant Builder - Builder for unshredding list/array types with recursive element processing
- Null
Unshred ๐Variant Builder - Builder for arrays with neither typed_value nor value (all Variant::Null)
- Struct
Unshred ๐Variant Builder - Builder for unshredding struct/object types with nested fields
- Timestamp
Unshred ๐RowBuilder - Generic builder for timestamp types that handles timezone-aware conversion
- Unshred
Primitive ๐RowBuilder - Generic unshred builder that works with any Array implementing AppendToVariantBuilder
- Value
Only ๐Unshred Variant Builder - Builder for arrays that only have value column (already unshredded)
Enumsยง
- Unshred
Variant ๐RowBuilder - Row builder for converting shredded VariantArray rows back to unshredded form
Traitsยง
- Append
ToVariant ๐Builder - Extension trait that directly adds row builder support for arrays that correspond to primitive variant types.
- Timestamp
Type ๐ - Trait for timestamp types to handle conversion to
DateTime<Utc>
Functionsยง
- unshred_
variant - Removes all (nested) typed_value columns from a VariantArray by converting them back to binary variant and merging the resulting values back into the value column.
- value_
field_ ๐is_ non_ nullable - value_
nulls_ ๐are_ masked - Returns true if every null in
valueis masked by a parent null, i.e. the column may be annotated non-nullable.