This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 45d0e01dda3 [fix](Nereids) offset do more than once when have shuffle
after limit (#42576)
45d0e01dda3 is described below
commit 45d0e01dda3b2713ed7aa57b56c8a6ef59652c4c
Author: morrySnow <[email protected]>
AuthorDate: Mon Oct 28 17:39:32 2024 +0800
[fix](Nereids) offset do more than once when have shuffle after limit
(#42576)
intro by #39316. it want to fix a problem intro by #36699. but forgot to
remove all wrong code in #36699.
after #39316, we should not set offset on exchange, when the exchange is
on the top of a limit with offset.
---
.../glue/translator/PhysicalPlanTranslator.java | 3 ---
.../data/nereids_syntax_p0/test_limit.out | 10 --------
.../suites/nereids_syntax_p0/test_limit.groovy | 29 +++++++++++++++++-----
3 files changed, 23 insertions(+), 19 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
index dd24022d9fd..3078fb36df6 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
@@ -325,9 +325,6 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
.collect(Collectors.toList());
keys.addAll(validOutputIds);
validOutputIds = keys;
- } else if (child instanceof PhysicalLimit && ((PhysicalLimit<?>)
child).getPhase().isGlobal()) {
- // because sort already contains Offset, we don't need to handle
PhysicalTopN
- exchangeNode.setOffset(((PhysicalLimit<?>) child).getOffset());
}
if (inputFragment instanceof MultiCastPlanFragment) {
// TODO: remove this logic when we split to multi-window in
logical window to physical window conversion
diff --git a/regression-test/data/nereids_syntax_p0/test_limit.out
b/regression-test/data/nereids_syntax_p0/test_limit.out
deleted file mode 100644
index 3e83144c18b..00000000000
--- a/regression-test/data/nereids_syntax_p0/test_limit.out
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file is automatically generated. You should know what you did if you
want to edit this
--- !limit1 --
-2 7844 TURNER SALESMAN 7698 1981-09-08 1500.0 0.0
30
-
--- !lmit2 --
-3 7934 MILLER CLERK 7782 1982-01-23 1300.0 0.0 10
-
--- !lmit3 --
-3 7934 MILLER CLERK 7782 1982-01-23 1300.0 0.0 10
-
diff --git a/regression-test/suites/nereids_syntax_p0/test_limit.groovy
b/regression-test/suites/nereids_syntax_p0/test_limit.groovy
index 5688097f35f..567821c627c 100644
--- a/regression-test/suites/nereids_syntax_p0/test_limit.groovy
+++ b/regression-test/suites/nereids_syntax_p0/test_limit.groovy
@@ -34,6 +34,13 @@ suite("test_limit") {
result([[1]])
}
+ test {
+ sql """
+ select * from test1 t1 join (select * from test1 limit 1 offset 1)
t2
+ """
+ result([[1,1],[1,1]])
+ }
+
sql """
drop table if exists row_number_limit_tbl;
"""
@@ -57,9 +64,13 @@ suite("test_limit") {
sql """ INSERT INTO row_number_limit_tbl VALUES (7788, 'SCOTT', 'ANALYST',
7566, '1987-04-19', 3000, 0, 20); """
sql """ INSERT INTO row_number_limit_tbl VALUES (7844, 'TURNER',
'SALESMAN', 7698, '1981-09-08', 1500, 0, 30); """
- qt_limit1 """
- select row_number() over(order by k6 desc) k6s, t.* from
row_number_limit_tbl t order by k6s limit 1 offset 1;
+
+ test {
+ sql """
+ select row_number() over(order by k6 desc) k6s, t.* from
row_number_limit_tbl t order by k6s limit 1 offset 1
"""
+ rowNum 1
+ }
sql """ truncate table row_number_limit_tbl; """
@@ -67,12 +78,18 @@ suite("test_limit") {
sql """ INSERT INTO row_number_limit_tbl VALUES (7844, 'TURNER',
'SALESMAN', 7698, '1981-09-08', 1500, 0, 30); """
sql """ INSERT INTO row_number_limit_tbl VALUES (7934, 'MILLER', 'CLERK',
7782, '1982-01-23', 1300, 0, 10); """
- qt_lmit2 """
- select row_number() over(order by k6 desc) k6s, t.* from
row_number_limit_tbl t limit 1 offset 2;
+ test {
+ sql """
+ select row_number() over(order by k6 desc) k6s, t.* from
row_number_limit_tbl t limit 1 offset 2
"""
+ rowNum 1
+ }
sql """ set parallel_pipeline_task_num = 1; """
- qt_lmit3 """
- select row_number() over(order by k6 desc) k6s, t.* from
row_number_limit_tbl t limit 1 offset 2;
+ test {
+ sql """
+ select row_number() over(order by k6 desc) k6s, t.* from
row_number_limit_tbl t limit 1 offset 2
"""
+ rowNum 1
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]