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]

Reply via email to