Class VariantShredder
Decomposes VariantValues into shredded (value, typed_value) pairs according to a ShredSchema.
Per the Parquet variant shredding spec, the variant metadata dictionary is shared
across an entire column. The Shred(IEnumerable<VariantValue>, ShredSchema)
batch entrypoint builds that shared metadata and emits per-row value bytes that
reference it — ready to drop into a Parquet value column.
public static class VariantShredder
- Inheritance
-
VariantShredder
- Inherited Members
Methods
Shred(VariantValue, ShredSchema, VariantMetadataBuilder, int[])
Shreds a single variant value against a caller-managed metadata dictionary.
Use this when combining shredded columns with external metadata, or when
streaming rows one at a time. The caller is responsible for ensuring
metadata already contains every field name the residual
may reference.
public static ShredResult Shred(VariantValue value, ShredSchema schema, VariantMetadataBuilder metadata, int[] idRemap)
Parameters
valueVariantValueschemaShredSchemametadataVariantMetadataBuilderidRemapint[]
Returns
Shred(IEnumerable<VariantValue>, ShredSchema)
Shreds a column of variant values into a shared metadata dictionary and per-row ShredResults. The residual Value bytes for each row reference the returned metadata.
public static (byte[] Metadata, IReadOnlyList<ShredResult> Rows) Shred(IEnumerable<VariantValue> values, ShredSchema schema)
Parameters
valuesIEnumerable<VariantValue>schemaShredSchema
Returns
- (byte[] Metadata, IReadOnlyList<ShredResult> Rows)
Shred(IEnumerable<VariantValue?>, ShredSchema)
Shreds a column of nullable variant values. A null entry is a
SQL-NULL row, as opposed to Null, which is a
present variant null. SQL-NULL rows produce a null entry in the
returned rows, which Build(ShredSchema, byte[], IReadOnlyList<ShredResult>, MemoryAllocator) turns
into a null element of the resulting array.
public static (byte[] Metadata, IReadOnlyList<ShredResult> Rows) Shred(IEnumerable<VariantValue?> values, ShredSchema schema)
Parameters
valuesIEnumerable<VariantValue?>schemaShredSchema
Returns
- (byte[] Metadata, IReadOnlyList<ShredResult> Rows)