Repository navigation
[fix](be) Open children of Iceberg nested struct expressions - #69832
Conversation
### What problem does this PR solve? Issue Number: apache#69782 Related PR: apache#69711 Problem Summary: NestedStructFieldExpr reuses the prepare-state guard in open(), so it returns without opening its child or marking itself ready. Use the normal expression open lifecycle, completing the nested traversal path alongside the AncestorNullDefaultExpr fix in apache#69711. Add a focused unit test for struct traversal readiness, converted initial defaults, independent ancestor NULL masks, and cloned contexts. ### Release note Fix initialization of nested struct traversal expressions used by FileScannerV2 Iceberg equality deletes. ### Check List (For Author) - Test: clang-format v16, build hygiene, and git diff --check. Unit test added. - Behavior changed: Yes. Nested struct expressions open their children before evaluation. - Does this need documentation: No. Internal expression lifecycle repair.
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
|
/review |
|
Codex automated review failed and did not complete. Error: Selected model is at capacity. Please try a different model. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
TPC-H: Total hot run time: 28392 ms |
TPC-DS: Total hot run time: 151453 ms |
ClickBench: Total hot run time: 24.51 s |
|
/review |
|
Codex automated review failed and did not complete. Error: Selected model is at capacity. Please try a different model. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
### What problem does this PR solve? Issue Number: apache#69782 Related PR: apache#69832 Problem Summary: The nested equality-delete expression test calls get_int() on ColumnNullable, which throws instead of reading the BIGINT value. Reuse the existing nullable BIGINT assertion helper to check NULL, NULL, and 7 for both the original and cloned expression contexts. ### Release note None ### Check List (For Author) - Test: clang-format v16 and git diff --check; existing unit test updated. - Behavior changed: No. Test assertion only. - Does this need documentation: No.
|
run buildall |
|
/review |
|
Codex automated review failed and did not complete. Error: Selected model is at capacity. Please try a different model. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 28604 ms |
TPC-DS: Total hot run time: 150978 ms |
ClickBench: Total hot run time: 24.24 s |
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
Local pipeline review — ✅ PASSschema: doris-repo-review/v1
status: PASS
pr: apache/doris#69832
commit: e06e81742abf72492afcbb727785c4c7653bf1ab
base: fc1b82283cbbab0ef4e23a8d9249dc3c83d71411
reviewed_at: 2026-11-04T10:59+08:00
reviewer: hubgeter
model: gpt-6.1-sol
effort: max
findings: {blocker: 0, major: 0, minor: 0, nit: 0}
rounds: 1
converged: trueNotes for maintainers
Reviewed locally with the |
### What problem does this PR solve? Issue Number: #69782 Related PR: #69711 Problem Summary: `NestedStructFieldExpr::open()` reuses the prepare guard and skips opening its child. Use the normal open lifecycle, completing the nested traversal fix after #69711. ### Release note Fix initialization of nested struct expressions in FileScannerV2 Iceberg equality deletes. ### Check List (For Author) - Test - [x] Unit Test: added coverage for cast defaults, nullable ancestors, and cloned contexts. - Behavior changed: - [x] Yes. Open nested expression children before execution. - Does this need documentation? - [x] No. ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label
What problem does this PR solve?
Issue Number: #69782
Related PR: #69711
Problem Summary:
NestedStructFieldExpr::open()reuses the prepare guard and skips opening its child. Use the normal open lifecycle, completing the nested traversal fix after #69711.Release note
Fix initialization of nested struct expressions in FileScannerV2 Iceberg equality deletes.
Check List (For Author)
Check List (For Reviewer who merge this PR)