Skip to content

[59_maintenance] fix: implement ArrayData::validate_values for union types - #11678

Merged
alamb merged 1 commit into
apache:59_maintenancefrom
Jefffrey:backport_11534
Oct 19, 2026
Merged

alamb merged 1 commit into
apache:59_maintenancefrom
Jefffrey:backport_11534

Conversation

@Jefffrey

Copy link
Copy Markdown
Contributor

…1534)

<!--
It is not necessary to raise an issue, but it is encouraged if it is a
non-trivial
enhancement/bug.

If this PR relates to an existing issue, but does not fully resolve it,
please change
the wording below from "Closes #NNN" to "Relates to #NNN" or "Part of
false closing an issue.
-->

- None

<!--
Why are you proposing this change? If this is already explained clearly
in the
issue then this section is not needed. Explaining clearly why changes
are proposed
helps reviewers understand your changes and offer better suggestions for
fixes.

Please try to explain the problem you are trying to solve in terms of
the user-visible
behavior, rather than the implementation.
-->

Ensure our validation APIs actually validate, to ensure downstream
usages can rely on enforced invariants.

<!--
There is no need to duplicate the description in the issue here but it
is
sometimes worth providing a summary of the individual changes in this
PR.
-->

Implement validation logic for union arrays in
`ArrayData::validate_values`:

- check all type ids are valid (non-negative, associated with a field in
`UnionFields`)
- dense offsets are within bounds for associated child array

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they
covered by existing tests, if so identify these tests)?

If this PR claims a performance improvement, please include evidence
such as
benchmark results.

DO NOT simply paste a list of commands ran to verify the code; this is
what our
CI is for and it pollutes the PR. ONLY explain if testing was included
with this
PR, or why it wasn't.
-->

Added new unit tests

<!--
Significant user-facing changes include:
- Breaking public API change
- Significant change to existing functionality (e.g. function returns
something different)

These need to be explicitly called out to ensure we have proper
documentation if
required and to ensure we follow proper semantic versioning.

DO NOT restate the changes of this PR; if a bug was fixed and already
explained
above, we don't need this to be restated as a user-facing change.
-->

No
@Jefffrey Jefffrey added the bug label Oct 18, 2026
@github-actions github-actions Bot added the arrow-core Core crates related to representing arrow data label Oct 18, 2026
@Jefffrey
Jefffrey marked this pull request as ready for review October 18, 2026 13:21

@alamb alamb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me-- thank you @Jefffrey

@alamb
alamb merged commit d476e45 into apache:59_maintenance Oct 19, 2026
31 checks passed
@Jefffrey
Jefffrey deleted the backport_11534 branch October 21, 2026 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow-core Core crates related to representing arrow data bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants