This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-1.1-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.1-lts by this push:
new 9fc25da135 [Bug](bucket shuffle) fix error bucket shuffle join plan in
two same table (#12930)
9fc25da135 is described below
commit 9fc25da1352bb0ff1864baf33a9f41202176856c
Author: HappenLee <[email protected]>
AuthorDate: Sat Sep 24 09:59:23 2022 +0800
[Bug](bucket shuffle) fix error bucket shuffle join plan in two same table
(#12930)
---
.../src/main/java/org/apache/doris/planner/DistributedPlanner.java | 3 ++-
.../src/test/java/org/apache/doris/planner/QueryPlanTest.java | 6 ++++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
index d205e077a0..840f28fb9d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java
@@ -640,7 +640,8 @@ public class DistributedPlanner {
}
SlotRef leftSlot = lhsJoinExpr.unwrapSlotRef();
- if (leftSlot.getTable() instanceof OlapTable) {
+ if (leftSlot.getTable() instanceof OlapTable
+ &&
leftScanNode.desc.getSlots().contains(leftSlot.getDesc())) {
// table name in SlotRef is not the really name. `select *
from test as t`
// table name in SlotRef is `t`, but here we need is
`test`.
leftJoinColumnNames.add(leftSlot.getTable().getName() +
"." + leftSlot.getColumnName());
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
index 1119baf62e..fe350d303a 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
@@ -1199,6 +1199,12 @@ public class QueryPlanTest {
Assert.assertTrue(explainString.contains("BUCKET_SHFFULE_HASH_PARTITIONED:
`t1`.`k1`, `t1`.`k1`"));
Assert.assertTrue(!explainString.contains("BUCKET_SHFFULE_HASH_PARTITIONED:
`t4`.`k1`, `t4`.`k1`"));
+ // here only a bucket shuffle + broadcast jost join
+ queryStr = "explain SELECT * FROM test.bucket_shuffle1 T LEFT JOIN
test.bucket_shuffle1 T1 ON T1.k2 = T.k1 and T.k2 = T1.k3 LEFT JOIN"
+ + " test.bucket_shuffle2 T2 ON T2.k2 = T1.k1 and T2.k1 =
T1.k2;";
+ explainString = getSQLPlanOrErrorMsg(queryStr);
+ Assert.assertTrue(explainString.contains("BUCKET_SHFFULE"));
+ Assert.assertTrue(explainString.contains("BROADCAST"));
// disable bucket shuffle join again
Deencapsulation.setField(connectContext.getSessionVariable(),
"enableBucketShuffleJoin", false);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]