Skip to content

fix: adapt Iceberg Variant binary storage width on read - #97

Merged
osipovartem merged 2 commits into
embucket-sync-df55.0.0from
variant-binary-width-unshred-df55
Oct 8, 2026
Merged

osipovartem merged 2 commits into
embucket-sync-df55.0.0from
variant-binary-width-unshred-df55

Conversation

@osipovartem

Copy link
Copy Markdown

Snowflake-written Iceberg v3 VARIANT files can materialize metadata as Arrow Binary while the logical Variant field uses BinaryView. UnshredVariantExpr previously failed when constructing the output StructArray before SQL evaluation. This change casts only mismatched binary columns with the Arrow batch kernel; matching columns remain Arc clones. The existing shredded-decimal regression now uses physical Binary, and a new unshredded Binary/Binary test covers both casts and SQL NULL. The change is validated by a Rustice live Horizon read of seven Snowflake-written rows, including DECIMAL, object, array, JSON null, and SQL NULL. No SPCS was started. Local verification: five variant_schema_adapter tests passed; cargo fmt --check passed. Ignored microbenchmark: BinaryView path about 1 us/batch; Binary path about 2 us for one row and 453 us for 4096 rows on this machine. Independent read-only review approved correctness and fast-path behavior.

@osipovartem
osipovartem merged commit b6e213e into embucket-sync-df55.0.0 Oct 8, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant