[opt](column) avoid redundant column clones#65367
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
/review |
|
Codex automated review failed and did not complete. Error: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Jul 10th, 2026 6:44 AM. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
|
run buildall |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run buildall |
TPC-H: Total hot run time: 29490 ms |
TPC-DS: Total hot run time: 179189 ms |
ClickBench: Total hot run time: 24.99 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
1 similar comment
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
What problem does this PR solve?
Some column execution paths copied full column data even when the result could safely share existing column storage and rely on COW before mutation. Root cause: projection, partition filtering, array offsets, and null-condition IF handling used clone_resized() as a defensive ownership boundary.
This change removes those redundant clones by reusing expression result columns directly, sharing array offsets in array_map, filtering copied blocks through the existing COW-aware block filter path, and reusing the else column when an IF condition is entirely null.
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)