Uh oh!
There was an error while loading. Please reload this page.
[feat](Nereids) push down predicates with multi columns through LogicalWindow and LogicalPartitionTopN - #36828
Merged
englefly merged 3 commits intoJun 27, 2024
Conversation
doris-robot
commented
Jun 25, 2024
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
feiniaofeiafei
commented
Jun 25, 2024
CollaboratorAuthor
run buildall |
doris-robot
commented
Jun 25, 2024
TPC-H: Total hot run time: 39987 ms |
doris-robot
commented
Jun 25, 2024
TPC-DS: Total hot run time: 172513 ms |
doris-robot
commented
Jun 25, 2024
ClickBench: Total hot run time: 30.49 s |
feiniaofeiafei
commented
Jun 26, 2024
CollaboratorAuthor
run buildall |
…icalWindow and LogicalPartitionTopN
…icalWindow and LogicalPartitionTopN
…icalWindow and LogicalPartitionTopN
feiniaofeiafeiforce-pushed
the
window_multi_column_push_down_predicate
branch
from
June 26, 2024 06:42
1b2b097 to
240f42aComparefeiniaofeiafei
commented
Jun 26, 2024
CollaboratorAuthor
run buildall |
doris-robot
commented
Jun 26, 2024
TPC-H: Total hot run time: 39593 ms |
doris-robot
commented
Jun 26, 2024
TPC-DS: Total hot run time: 174273 ms |
doris-robot
commented
Jun 26, 2024
ClickBench: Total hot run time: 30.55 s |
feiniaofeiafei
commented
Jun 27, 2024
CollaboratorAuthor
run p0 |
morrySnow
approved these changes
Jun 27, 2024
Contributor
PR approved by at least one committer and no changes requested. |
Contributor
PR approved by anyone and no changes requested. |
englefly
approved these changes
Jun 27, 2024
feiniaofeiafei added a commit
to feiniaofeiafei/doris
that referenced
this pull request
Jun 28, 2024
…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>
feiniaofeiafei added a commit
to feiniaofeiafei/doris
that referenced
this pull request
Jun 28, 2024
…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>
feiniaofeiafei added a commit
to feiniaofeiafei/doris
that referenced
this pull request
Jun 28, 2024
…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>
dataroaring pushed a commit
that referenced
this pull request
Jun 28, 2024
…alWindow and LogicalPartitionTopN (#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>
morrySnow pushed a commit
that referenced
this pull request
Jul 4, 2024
…alWindow and LogicalPartitionTopN (#36828) (#36981) cherry-pick #36828 to branch-2.1 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>
morrySnow pushed a commit
that referenced
this pull request
Jul 5, 2024
…alWindow and LogicalPartitionTopN (#36984) 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. 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>
Closed
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>
HappenLee pushed a commit
to HappenLee/incubator-doris
that referenced
this pull request
Apr 24, 2026
…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>
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 freeto 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.
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.