[Bug] Nullability validation incorrectly checks children masked by null parents

Closed
#339 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
58/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
cpp

Research direction

Start by locating ArrowUtils::CheckNullabilityMatch and the tests covering nested STRUCT, LIST, MAP, and VECTOR arrays. Verify cases where null parents contain physically null children, and cases where valid parents expose null children; done means masked children are ignored while visible non-nullable children are rejected.

Written by the indexing model from the issue text.

Description

bug
Search before asking
  • I searched in the issues and found nothing similar.
Paimon-cpp version

master

Minimal reproduce step

ArrowUtils::CheckNullabilityMatch recursively checks complete Arrow child arrays.

For nested Arrow types, a null parent may still have physical child values. These
children are logically hidden and should not participate in nullability validation.
However, if a hidden child is null and its field is non-nullable, the current
implementation rejects the batch.

This affects nested STRUCT, LIST, MAP, and VECTOR fields and is inconsistent with
Java's logical row semantics.

What doesn't meet your expectations?

Expected behavior:

  • Ignore child values masked by a null parent.
  • Reject null children when the parent is valid and the child is logically visible.
Anything else?

No response

Are you willing to submit a PR?
  • I'm willing to submit a PR!
Dominant language
C++
Stars
65
Forks
29
Avg merge
2d 30m
Merged PRs (30d)
77

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/paimon-cpp

All issues in apache/paimon-cpp

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.