Latest Results
Add `UnionArray` (#8834)
## Rationale for this change
Tracking issue: #8769
This is the array layer of the Union stack. The compute integration has
been split into the stacked follow-up #8884.
## What changes are included in this PR?
- Adds the canonical sparse `UnionArray` encoding with nullable u8 type
IDs and row-aligned children.
- Adds construction and invariant validation, typed accessors, scalar
access, top-level validity, serialization, and session registration.
- Registers UnionArray as the canonical representation for Union dtypes.
- Leaves filter, take, slice, mask, cast, aggregate, constant/chunked
canonicalization, and compression support to #8884.
I think that this is a mostly straightforward implementation. The one
implementation thing I will shout out is that we do not validate that
the entire type IDs array has valid type IDs. If we come across an
invalid type ID, we just panic, and that is similar behavior to
`DictArray` validation.
## What APIs are changed? Are there any user-facing changes?
Adds the public Union, UnionArray, UnionArrayExt, and UnionDataParts
APIs.
---------
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com> Latest Branches
+43%
-11%
-6%
© 2026 CodSpeed Technology