[feat](Nereids) push down predicates with multi columns through LogicalWindow and LogicalPartitionTopN#36984
Merged
morrySnow merged 4 commits intoapache:branch-2.0from Jul 5, 2024
Conversation
…alWindow and LogicalPartitionTopN (apache#36828) The requirement for predicate pushdown through the window operator is that the partition by slots of the window contains all slots in the predicate. The original implementation of doris only allows predicate pushdown with one slot. This PR relaxes this restriction and allows for predicate pushdown with multiple slots. The same applies to the predicate pushdown of the LogicalPartitionTopN operator. The following sql is an example. ```sql select * from ( select row_number() over(partition by id, value1 order by value1) as num, id, value1 from push_down_multi_column_predicate_through_window_t ) t where abs(id + value1)<4 and num <= 2; ``` --------- Co-authored-by: feiniaofeiafei <moailing@selectdb.com>
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
Contributor
Author
|
run buildall |
Contributor
Author
|
run buildall |
1 similar comment
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 50686 ms |
TPC-DS: Total hot run time: 204130 ms |
ClickBench: Total hot run time: 30.86 s |
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
…alWindow and LogicalPartitionTopN
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 49843 ms |
TPC-DS: Total hot run time: 203647 ms |
ClickBench: Total hot run time: 30.84 s |
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
…alWindow and LogicalPartitionTopN
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 50028 ms |
TPC-DS: Total hot run time: 203289 ms |
ClickBench: Total hot run time: 30.62 s |
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
…alWindow and LogicalPartitionTopN
Contributor
Author
|
run buildall |
TPC-H: Total hot run time: 50266 ms |
TPC-DS: Total hot run time: 203871 ms |
ClickBench: Total hot run time: 30.08 s |
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
Contributor
|
run external |
Contributor
|
run external |
mongo360
pushed a commit
to mongo360/doris
that referenced
this pull request
Aug 16, 2024
…alWindow and LogicalPartitionTopN (apache#36984) cherry-pick apache#36828 to branch-2.0 The requirement for predicate pushdown through the window operator is that the partition by slots of the window contains all slots in the predicate. The original implementation of doris only allows predicate pushdown with one slot. This PR relaxes this restriction and allows for predicate pushdown with multiple slots. The same applies to the predicate pushdown of the LogicalPartitionTopN operator. The following sql is an example. select * from ( select row_number() over(partition by id, value1 order by value1) as num, id, value1 from push_down_multi_column_predicate_through_window_t ) t where abs(id + value1)<4 and num <= 2; Co-authored-by: feiniaofeiafei <moailing@selectdb.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cherry-pick #36828 to branch-2.0
The requirement for predicate pushdown through the window operator is that the partition by slots of the window contains all slots in the predicate. The original implementation of doris only allows predicate pushdown with one slot. This PR relaxes this restriction and allows for predicate pushdown with multiple slots. The same applies to the predicate pushdown of the LogicalPartitionTopN operator. The following sql is an example.