-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Fix](nereids) fix rule merge_aggregate when has project #33892
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
|
run buildall |
TPC-H: Total hot run time: 38418 ms |
TPC-DS: Total hot run time: 183979 ms |
ClickBench: Total hot run time: 30.23 s |
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
|
run buildall |
TPC-H: Total hot run time: 38192 ms |
TPC-DS: Total hot run time: 185253 ms |
ClickBench: Total hot run time: 31.19 s |
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
|
run buildall |
TPC-H: Total hot run time: 39290 ms |
TPC-DS: Total hot run time: 184504 ms |
ClickBench: Total hot run time: 30.67 s |
6bb4604 to
f5ea21e
Compare
|
run buildall |
TPC-H: Total hot run time: 38296 ms |
TPC-DS: Total hot run time: 185222 ms |
ClickBench: Total hot run time: 29.96 s |
f5ea21e to
f95e424
Compare
|
run buildall |
| topDown(new EliminateGroupBy(), | ||
| new MergeAggregate()) | ||
| new MergeAggregate(), | ||
| new AdjustAggregateNullableForEmptySet()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add comment here to explain why need execute AdjustAggregateNullableForEmptySet after MergeAggregate
|
run buildall |
|
run p0 |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
This pr fix 2 problem of merge_aggregate:
1.The map innerAggExprIdToAggFunc key is the inner agg output agg func exprid, value is the Agg func. When a LogicalProject is between 2 agg, the outeragg func child refer to the project output, I forget to do the rewrite to make the outeragg func child refer to the inneragg output. This can lead to an incorrect judgment when determining whether the outer agg func child exists in the inner agg func outputs. This pr fix this bug.
2.When merging 2 sum/min/max, the outer agg group by key is empty, and the inner agg group by key is not empty, the nullable attribute need to be adjusted. Because the sum without group by key is always nullable, the sum with group by key nullable attribute determined by the sum child nullable attribute. This pr fix this bug.