[Bug] Nullability validation incorrectly checks children masked by null parents
- Ngôn ngữ chính
- C++
- Star
- 65
- Fork
- 25
- Merge trung bình
- 2 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 80
Mô tả
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/paimon-cpp/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?
- [x] I'm willing to submit a PR!
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách tìm ArrowUtils::CheckNullabilityMatch và các bài kiểm thử bao phủ các mảng STRUCT, LIST, MAP và VECTOR lồng nhau. Xác minh các trường hợp trong đó các nút cha null chứa các nút con null về mặt vật lý, cũng như các trường hợp trong đó các nút cha hợp lệ để lộ các nút con null; được coi là hoàn thành khi các nút con bị che được bỏ qua, trong khi các nút con không nullable hiển thị bị từ chối.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- data-engineering
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 58/100