Uh oh!
There was an error while loading. Please reload this page.
[refine](expr) Expr execution does not depend on the block's rows. - #58578
Conversation
Thearas
commented
Dec 1, 2025
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Mryange
commented
Dec 1, 2025
run buildall |
doris-robot
commented
Dec 1, 2025
TPC-H: Total hot run time: 34436 ms |
doris-robot
commented
Dec 1, 2025
TPC-DS: Total hot run time: 181794 ms |
doris-robot
commented
Dec 1, 2025
ClickBench: Total hot run time: 27.29 s |
Mryange
commented
Dec 1, 2025
run buildall |
doris-robot
commented
Dec 1, 2025
TPC-H: Total hot run time: 34035 ms |
doris-robot
commented
Dec 1, 2025
TPC-DS: Total hot run time: 182288 ms |
doris-robot
commented
Dec 1, 2025
ClickBench: Total hot run time: 27.41 s |
Mryange
commented
Dec 2, 2025
run buildall |
doris-robot
commented
Dec 2, 2025
TPC-H: Total hot run time: 34248 ms |
doris-robot
commented
Dec 2, 2025
TPC-DS: Total hot run time: 182475 ms |
doris-robot
commented
Dec 2, 2025
ClickBench: Total hot run time: 27.27 s |
Mryange
commented
Dec 2, 2025
run buildall |
1 similar comment
Mryange
commented
Dec 2, 2025
run buildall |
doris-robot
commented
Dec 2, 2025
TPC-H: Total hot run time: 34804 ms |
doris-robot
commented
Dec 2, 2025
TPC-DS: Total hot run time: 182831 ms |
doris-robot
commented
Dec 2, 2025
ClickBench: Total hot run time: 27.54 s |
Mryange
commented
Dec 2, 2025
run buildall |
doris-robot
commented
Dec 2, 2025
TPC-H: Total hot run time: 34142 ms |
doris-robot
commented
Dec 2, 2025
TPC-DS: Total hot run time: 181012 ms |
doris-robot
commented
Dec 2, 2025
ClickBench: Total hot run time: 27.11 s |
doris-robot
commented
Dec 2, 2025
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 2, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
Mryange
commented
Dec 3, 2025
run buildall |
doris-robot
commented
Dec 3, 2025
TPC-H: Total hot run time: 35550 ms |
doris-robot
commented
Dec 3, 2025
TPC-DS: Total hot run time: 182478 ms |
doris-robot
commented
Dec 3, 2025
ClickBench: Total hot run time: 27.35 s |
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
Mryange
commented
Dec 3, 2025
run buildall |
doris-robot
commented
Dec 3, 2025
TPC-H: Total hot run time: 34852 ms |
doris-robot
commented
Dec 3, 2025
TPC-DS: Total hot run time: 182500 ms |
doris-robot
commented
Dec 3, 2025
ClickBench: Total hot run time: 27.51 s |
doris-robot
commented
Dec 3, 2025
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Dec 3, 2025
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
Uh oh!
There was an error while loading. Please reload this page.
…pache#58578) Previously, when executing an expr we relied on block.rows() to determine the number of rows to return. That required guaranteeing the block was not empty and that the first column (since block.rows() is implemented from it) had the final desired row count. Now we pass a count parameter to indicate the size each expr should return for its Column. before ```C++ vectorized::Block tmp_block; tmp_block.insert({vectorized::ColumnUInt8::create(1), std::make_shared<vectorized::DataTypeUInt8>(), ""}); RETURN_IF_ERROR(_const_expr_lists[_const_expr_list_idx][i]->execute(&tmp_block, &result_list[i])); ``` now ```C++ RETURN_IF_ERROR(_const_expr_lists[_const_expr_list_idx][i]->execute_const_expr( tmp_block_columns[i])); Status VExprContext::execute_const_expr(ColumnWithTypeAndName& result) { Status st; RETURN_IF_CATCH_EXCEPTION({ st = _root->execute_column(this, nullptr, 1, result.column); }); ```
…pache#58578) Previously, when executing an expr we relied on block.rows() to determine the number of rows to return. That required guaranteeing the block was not empty and that the first column (since block.rows() is implemented from it) had the final desired row count. Now we pass a count parameter to indicate the size each expr should return for its Column. before ```C++ vectorized::Block tmp_block; tmp_block.insert({vectorized::ColumnUInt8::create(1), std::make_shared<vectorized::DataTypeUInt8>(), ""}); RETURN_IF_ERROR(_const_expr_lists[_const_expr_list_idx][i]->execute(&tmp_block, &result_list[i])); ``` now ```C++ RETURN_IF_ERROR(_const_expr_lists[_const_expr_list_idx][i]->execute_const_expr( tmp_block_columns[i])); Status VExprContext::execute_const_expr(ColumnWithTypeAndName& result) { Status st; RETURN_IF_CATCH_EXCEPTION({ st = _root->execute_column(this, nullptr, 1, result.column); }); ```
### What problem does this PR solve? pick #56905#58125#58692#58578#58710#58841 ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
What problem does this PR solve?
Previously, when executing an expr we relied on block.rows() to determine the number of rows to return. That required guaranteeing the block was not empty and that the first column (since block.rows() is implemented from it) had the final desired row count. Now we pass a count parameter to indicate the size each expr should return for its Column.
before
vectorized::Block tmp_block; tmp_block.insert({vectorized::ColumnUInt8::create(1), std::make_shared<vectorized::DataTypeUInt8>(), ""}); RETURN_IF_ERROR(_const_expr_lists[_const_expr_list_idx][i]->execute(&tmp_block, &result_list[i]));now
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)