You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/10/26 07:11:57 UTC

[GitHub] [doris] jackwener opened a new pull request, #13681: [enhancement](Nereids): support otherJoinConjuncts in cascades join

jackwener opened a new pull request, #13681:
URL: https://github.com/apache/doris/pull/13681

   # Proposed changes
   
   Issue Number: close #xxx
   
   ## Problem summary
   
   support otherJoinConjuncts in cascades join reorder.
   
   ## Checklist(Required)
   
   1. Does it affect the original behavior: 
       - [x] Yes
       - [ ] No
       - [ ] I don't know
   2. Has unit tests been added:
       - [x] Yes
       - [ ] No
       - [ ] No Need
   3. Has document been added or modified:
       - [ ] Yes
       - [ ] No
       - [x] No Need
   4. Does it need to update dependencies:
       - [ ] Yes
       - [x] No
   5. Are there any changes that cannot be rolled back:
       - [ ] Yes (If Yes, please explain WHY)
       - [x] No
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at [dev@doris.apache.org](mailto:dev@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc...
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] jackwener merged pull request #13681: [enhancement](Nereids) support otherJoinConjuncts in cascades join reorder

Posted by GitBox <gi...@apache.org>.
jackwener merged PR #13681:
URL: https://github.com/apache/doris/pull/13681


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] morrySnow commented on a diff in pull request #13681: [enhancement](Nereids) support otherJoinConjuncts in cascades join reorder

Posted by GitBox <gi...@apache.org>.
morrySnow commented on code in PR #13681:
URL: https://github.com/apache/doris/pull/13681#discussion_r1015133792


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProject.java:
##########
@@ -111,14 +117,26 @@ public Rule build() {
                         }
                     }
                     // replace hashJoinConjuncts
-                    newBottomHashJoinConjuncts = JoinUtils.replaceHashConjuncts(
+                    newBottomHashJoinConjuncts = JoinUtils.replaceJoinConjuncts(
                             newBottomHashJoinConjuncts, outputToInput);
-                    newTopHashJoinConjuncts = JoinUtils.replaceHashConjuncts(
+                    newTopHashJoinConjuncts = JoinUtils.replaceJoinConjuncts(
                             newTopHashJoinConjuncts, inputToOutput);
 
-                    // Add all slots used by hashOnCondition when projects not empty.
-                    // TODO: Does nonHashOnCondition also need to be considered.
-                    Map<Boolean, Set<Slot>> abOnUsedSlots = newTopHashJoinConjuncts.stream()
+                    // replace otherJoinConjuncts
+                    newBottomOtherJoinConjuncts = JoinUtils.replaceJoinConjuncts(
+                            newBottomOtherJoinConjuncts, outputToInput);
+                    newTopOtherJoinConjuncts = JoinUtils.replaceJoinConjuncts(
+                            newTopOtherJoinConjuncts, inputToOutput);
+
+                    if (newBottomHashJoinConjuncts == null || newTopHashJoinConjuncts == null
+                            || newBottomOtherJoinConjuncts == null || newTopOtherJoinConjuncts == null) {

Review Comment:
   why prohibit other join conjuncts is null 



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java:
##########
@@ -52,34 +52,38 @@ public class InnerJoinLAsscom extends OneExplorationRuleFactory {
     public Rule build() {
         return innerLogicalJoin(innerLogicalJoin(), group())
                 .when(topJoin -> checkReorder(topJoin, topJoin.left()))
-                // TODO: handle otherJoinCondition
-                .when(topJoin -> topJoin.getOtherJoinConjuncts().isEmpty())
-                .when(topJoin -> topJoin.left().getOtherJoinConjuncts().isEmpty())
                 .then(topJoin -> {
                     LogicalJoin<GroupPlan, GroupPlan> bottomJoin = topJoin.left();
                     GroupPlan a = bottomJoin.left();
                     GroupPlan b = bottomJoin.right();
                     GroupPlan c = topJoin.right();
 
                     // split HashJoinConjuncts.
-                    Map<Boolean, List<Expression>> splitOn = splitHashConjuncts(topJoin.getHashJoinConjuncts(),
-                            bottomJoin);
-                    List<Expression> newTopHashConjuncts = splitOn.get(true);
-                    List<Expression> newBottomHashConjuncts = splitOn.get(false);
+                    Map<Boolean, List<Expression>> splitHashConjunts = splitConjuncts(topJoin.getHashJoinConjuncts(),
+                            bottomJoin, bottomJoin.getHashJoinConjuncts());
+                    List<Expression> newTopHashConjuncts = splitHashConjunts.get(true);
+                    List<Expression> newBottomHashConjuncts = splitHashConjunts.get(false);
+                    Preconditions.checkState(!newTopHashConjuncts.isEmpty(),
+                            "LAsscom newTopHashJoinConjuncts join can't empty");
                     if (newBottomHashConjuncts.size() == 0) {
                         return null;
                     }
 
-                    // TODO: split otherCondition.
+                    // split OtherJoinConjuncts.
+                    Map<Boolean, List<Expression>> splitOtherConjunts = splitConjuncts(topJoin.getOtherJoinConjuncts(),
+                            bottomJoin, bottomJoin.getOtherJoinConjuncts());
+                    List<Expression> newTopOtherConjuncts = splitOtherConjunts.get(true);
+                    List<Expression> newBottomOtherConjuncts = splitOtherConjunts.get(false);

Review Comment:
   chould these two list be **null**?



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinLAsscomProject.java:
##########
@@ -117,14 +131,25 @@ public Rule build() {
                         }
                     }
                     // replace hashJoinConjuncts
-                    newBottomHashJoinConjuncts = JoinUtils.replaceHashConjuncts(
+                    newBottomHashJoinConjuncts = JoinUtils.replaceJoinConjuncts(
                             newBottomHashJoinConjuncts, outputToInput);
-                    newTopHashJoinConjuncts = JoinUtils.replaceHashConjuncts(
+                    newTopHashJoinConjuncts = JoinUtils.replaceJoinConjuncts(
                             newTopHashJoinConjuncts, inputToOutput);
+                    // replace otherJoinConjuncts
+                    newBottomOtherJoinConjuncts = JoinUtils.replaceJoinConjuncts(
+                            newBottomOtherJoinConjuncts, outputToInput);
+                    newTopOtherJoinConjuncts = JoinUtils.replaceJoinConjuncts(
+                            newTopOtherJoinConjuncts, inputToOutput);
+
+                    if (newBottomHashJoinConjuncts == null || newTopHashJoinConjuncts == null
+                            || newBottomOtherJoinConjuncts == null || newTopOtherJoinConjuncts == null) {
+                        return null;

Review Comment:
   other conjuncts could be null, and it is ok i think



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProject.java:
##########
@@ -172,15 +192,17 @@ public static Set<ExprId> getExprIdSetForB(GroupPlan b, List<NamedExpression> bP
     }
 
     /**
-     * Split HashCondition into two part.
+     * Split Condition into two part.
+     * True: contains B.
+     * False: just contains A C.
      */
-    public static Map<Boolean, List<Expression>> splitHashConjunctsWithAlias(List<Expression> topHashConjuncts,
-            LogicalJoin<GroupPlan, GroupPlan> bottomJoin, Set<ExprId> bExprIdSet) {
+    public static Map<Boolean, List<Expression>> splitConjunctsWithAlias(List<Expression> topConjuncts,
+            LogicalJoin<GroupPlan, GroupPlan> bottomJoin, List<Expression> bottomConjunct, Set<ExprId> bExprIdSet) {

Review Comment:
   ```suggestion
               LogicalJoin<GroupPlan, GroupPlan> bottomJoin, List<Expression> bottomConjuncts, Set<ExprId> bExprIdSet) {
   ```



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinLAsscomProject.java:
##########
@@ -89,20 +87,36 @@ public Rule build() {
                     Set<ExprId> bExprIdSet = InnerJoinLAsscomProject.getExprIdSetForB(bottomJoin.right(),
                             newRightProjects);
 
-                    /* ********** split HashConjuncts ********** */
-                    Map<Boolean, List<Expression>> splitOn = InnerJoinLAsscomProject.splitHashConjunctsWithAlias(
-                            topJoin.getHashJoinConjuncts(), bottomJoin, bExprIdSet);
-                    List<Expression> newTopHashJoinConjuncts = splitOn.get(true);
+                    /* ********** split Conjuncts ********** */
+                    Map<Boolean, List<Expression>> splitHashJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(
+                            topJoin.getHashJoinConjuncts(), bottomJoin, bottomJoin.getHashJoinConjuncts(), bExprIdSet);
+                    List<Expression> newTopHashJoinConjuncts = splitHashJoinConjuncts.get(true);
+                    Preconditions.checkState(!newTopHashJoinConjuncts.isEmpty(),
+                            "LAsscom newTopHashJoinConjuncts join can't empty");
+                    // When newTopHashJoinConjuncts.size() != bottomJoin.getHashJoinConjuncts().size()
+                    // It means that topHashJoinConjuncts contain A, B, C, we should LAsscom.
                     if (topJoin.getJoinType() != bottomJoin.getJoinType()
                             && newTopHashJoinConjuncts.size() != bottomJoin.getHashJoinConjuncts().size()) {
                         return null;
                     }
-                    List<Expression> newBottomHashJoinConjuncts = splitOn.get(false);
+                    List<Expression> newBottomHashJoinConjuncts = splitHashJoinConjuncts.get(false);
                     if (newBottomHashJoinConjuncts.size() == 0) {
                         return null;
                     }
 
-                    /* ********** replace HashConjuncts by projects ********** */
+                    Map<Boolean, List<Expression>> splitOtherJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(

Review Comment:
   if splitConjunctsWithAlias used both for Inner and Outer, it should be move to JoinUtils



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinLAsscomProject.java:
##########
@@ -89,20 +87,36 @@ public Rule build() {
                     Set<ExprId> bExprIdSet = InnerJoinLAsscomProject.getExprIdSetForB(bottomJoin.right(),
                             newRightProjects);
 
-                    /* ********** split HashConjuncts ********** */
-                    Map<Boolean, List<Expression>> splitOn = InnerJoinLAsscomProject.splitHashConjunctsWithAlias(
-                            topJoin.getHashJoinConjuncts(), bottomJoin, bExprIdSet);
-                    List<Expression> newTopHashJoinConjuncts = splitOn.get(true);
+                    /* ********** split Conjuncts ********** */
+                    Map<Boolean, List<Expression>> splitHashJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(
+                            topJoin.getHashJoinConjuncts(), bottomJoin, bottomJoin.getHashJoinConjuncts(), bExprIdSet);
+                    List<Expression> newTopHashJoinConjuncts = splitHashJoinConjuncts.get(true);
+                    Preconditions.checkState(!newTopHashJoinConjuncts.isEmpty(),
+                            "LAsscom newTopHashJoinConjuncts join can't empty");
+                    // When newTopHashJoinConjuncts.size() != bottomJoin.getHashJoinConjuncts().size()
+                    // It means that topHashJoinConjuncts contain A, B, C, we should LAsscom.

Review Comment:
   ```suggestion
                       // It means that topHashJoinConjuncts contain A, B, C, we should not do LAsscom.
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] jackwener commented on a diff in pull request #13681: [enhancement](Nereids) support otherJoinConjuncts in cascades join reorder

Posted by GitBox <gi...@apache.org>.
jackwener commented on code in PR #13681:
URL: https://github.com/apache/doris/pull/13681#discussion_r1015163530


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinLAsscomProject.java:
##########
@@ -89,20 +87,36 @@ public Rule build() {
                     Set<ExprId> bExprIdSet = InnerJoinLAsscomProject.getExprIdSetForB(bottomJoin.right(),
                             newRightProjects);
 
-                    /* ********** split HashConjuncts ********** */
-                    Map<Boolean, List<Expression>> splitOn = InnerJoinLAsscomProject.splitHashConjunctsWithAlias(
-                            topJoin.getHashJoinConjuncts(), bottomJoin, bExprIdSet);
-                    List<Expression> newTopHashJoinConjuncts = splitOn.get(true);
+                    /* ********** split Conjuncts ********** */
+                    Map<Boolean, List<Expression>> splitHashJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(
+                            topJoin.getHashJoinConjuncts(), bottomJoin, bottomJoin.getHashJoinConjuncts(), bExprIdSet);
+                    List<Expression> newTopHashJoinConjuncts = splitHashJoinConjuncts.get(true);
+                    Preconditions.checkState(!newTopHashJoinConjuncts.isEmpty(),
+                            "LAsscom newTopHashJoinConjuncts join can't empty");
+                    // When newTopHashJoinConjuncts.size() != bottomJoin.getHashJoinConjuncts().size()
+                    // It means that topHashJoinConjuncts contain A, B, C, we should LAsscom.
                     if (topJoin.getJoinType() != bottomJoin.getJoinType()
                             && newTopHashJoinConjuncts.size() != bottomJoin.getHashJoinConjuncts().size()) {
                         return null;
                     }
-                    List<Expression> newBottomHashJoinConjuncts = splitOn.get(false);
+                    List<Expression> newBottomHashJoinConjuncts = splitHashJoinConjuncts.get(false);
                     if (newBottomHashJoinConjuncts.size() == 0) {
                         return null;
                     }
 
-                    /* ********** replace HashConjuncts by projects ********** */
+                    Map<Boolean, List<Expression>> splitOtherJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(

Review Comment:
   This function is not universal (it is obvious in the parameters).
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13681: [enhancement](Nereids) support otherJoinConjuncts in cascades join reorder

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13681:
URL: https://github.com/apache/doris/pull/13681#issuecomment-1305838924

   PR approved by anyone and no changes requested.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] morrySnow commented on a diff in pull request #13681: [enhancement](Nereids) support otherJoinConjuncts in cascades join reorder

Posted by GitBox <gi...@apache.org>.
morrySnow commented on code in PR #13681:
URL: https://github.com/apache/doris/pull/13681#discussion_r1009140690


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/util/JoinUtils.java:
##########
@@ -285,28 +286,28 @@ public static boolean couldColocateJoin(DistributionSpecHash leftHashSpec, Distr
     }
 
     /**
-     * replace hashJoinConjuncts by using slots map.
-     * TODO: just support `col1=col2`
+     * replace JoinConjuncts by using slots map.
+     * TODO: just support `col1 [cmp = > < ...] col2`
      */
-    public static List<Expression> replaceHashConjuncts(List<Expression> hashJoinConjuncts,
+    public static List<Expression> replaceJoinConjuncts(List<Expression> hashJoinConjuncts,
             Map<Slot, Slot> replaceMaps) {
         List<Expression> newHashJoinConjuncts = Lists.newArrayList();
         for (Expression hashJoinConjunct : hashJoinConjuncts) {
-            if (!(hashJoinConjunct instanceof EqualTo)) {
+            if (!(hashJoinConjunct instanceof ComparisonPredicate)) {
                 return null;
             }
-            EqualTo equalTo = (EqualTo) hashJoinConjunct;
-            if (!(equalTo.left() instanceof Slot) || !(equalTo.right() instanceof Slot)) {
+            ComparisonPredicate cmp = (ComparisonPredicate) hashJoinConjunct;
+            if (!(cmp.left() instanceof Slot) || !(cmp.right() instanceof Slot)) {

Review Comment:
   when we process other conditions on join. we could meet the expression such as `a.c1 + a.c2 > b.c3`. So we cannot process other join condition with this constraint



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java:
##########
@@ -93,13 +97,13 @@ public static boolean checkReorder(LogicalJoin<? extends Plan, GroupPlan> topJoi
     }
 
     /**
-     * Split HashCondition into two part.
+     * Split onCondition into two part.
      */
-    public static Map<Boolean, List<Expression>> splitHashConjuncts(List<Expression> topHashConjuncts,
-            LogicalJoin<GroupPlan, GroupPlan> bottomJoin) {
+    private static Map<Boolean, List<Expression>> splitConjuncts(List<Expression> topConjuncts,
+            LogicalJoin<GroupPlan, GroupPlan> bottomJoin, List<Expression> bottomConjuncts) {
         // top: (A B)(error) (A C) (B C) (A B C)
         // Split topJoin hashCondition to two part according to include B.
-        Map<Boolean, List<Expression>> splitOn = topHashConjuncts.stream()
+        Map<Boolean, List<Expression>> splitOn = topConjuncts.stream()
                 .collect(Collectors.partitioningBy(topHashOn -> {
                     Set<Slot> usedSlot = topHashOn.collect(Slot.class::isInstance);

Review Comment:
   nit: could use getInputSlots function in Expression



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinLAsscomProject.java:
##########
@@ -89,20 +87,34 @@ public Rule build() {
                     Set<ExprId> bExprIdSet = InnerJoinLAsscomProject.getExprIdSetForB(bottomJoin.right(),
                             newRightProjects);
 
-                    /* ********** split HashConjuncts ********** */
-                    Map<Boolean, List<Expression>> splitOn = InnerJoinLAsscomProject.splitHashConjunctsWithAlias(
-                            topJoin.getHashJoinConjuncts(), bottomJoin, bExprIdSet);
-                    List<Expression> newTopHashJoinConjuncts = splitOn.get(true);
+                    /* ********** split Conjuncts ********** */
+                    Map<Boolean, List<Expression>> splitHashJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(
+                            topJoin.getHashJoinConjuncts(), bottomJoin, bottomJoin.getHashJoinConjuncts(), bExprIdSet);
+                    List<Expression> newTopHashJoinConjuncts = splitHashJoinConjuncts.get(true);
+                    Preconditions.checkState(!newTopHashJoinConjuncts.isEmpty(),
+                            "LAsscom newTopHashJoinConjuncts join can't empty");
                     if (topJoin.getJoinType() != bottomJoin.getJoinType()
                             && newTopHashJoinConjuncts.size() != bottomJoin.getHashJoinConjuncts().size()) {
                         return null;
                     }
-                    List<Expression> newBottomHashJoinConjuncts = splitOn.get(false);
+                    List<Expression> newBottomHashJoinConjuncts = splitHashJoinConjuncts.get(false);
                     if (newBottomHashJoinConjuncts.size() == 0) {
                         return null;
                     }
 
-                    /* ********** replace HashConjuncts by projects ********** */
+                    Map<Boolean, List<Expression>> splitOtherJoinConjuncts
+                            = InnerJoinLAsscomProject.splitConjunctsWithAlias(
+                            topJoin.getOtherJoinConjuncts(), bottomJoin, bottomJoin.getOtherJoinConjuncts(),
+                            bExprIdSet);
+                    List<Expression> newTopOtherJoinConjuncts = splitOtherJoinConjuncts.get(true);
+                    if (topJoin.getJoinType() != bottomJoin.getJoinType()
+                            && newTopOtherJoinConjuncts.size() != bottomJoin.getOtherJoinConjuncts().size()) {
+                        return null;

Review Comment:
   add comment to explain why~



##########
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscomProjectTest.java:
##########
@@ -127,4 +132,44 @@ void testAliasTopMultiHashJoin() {
                         ).when(join -> join.getHashJoinConjuncts().size() == 2)
                 );
     }
+
+    @Test
+    public void testHashAndOther() {
+        List<Expression> bottomHashJoinConjunct = ImmutableList.of(

Review Comment:
   we need add some complicate expressions in other condition test.
   ```
   a.c1 + a.c2 > b.c1
   a.c1 + b.c1 > 0
   substring(a.c1, 5, 10) != '123456'
   ...
   ```



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/InnerJoinLAsscom.java:
##########
@@ -93,13 +97,13 @@ public static boolean checkReorder(LogicalJoin<? extends Plan, GroupPlan> topJoi
     }
 
     /**
-     * Split HashCondition into two part.
+     * Split onCondition into two part.

Review Comment:
   add more comment, to explain which expression will split into  true part and which expression will split into the false part 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] hello-stephen commented on pull request #13681: [enhancement](Nereids): support otherJoinConjuncts in cascades join

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #13681:
URL: https://github.com/apache/doris/pull/13681#issuecomment-1292179149

   TeamCity pipeline, clickbench performance test result:
    the sum of best hot time: 38.94 seconds
    load time: 558 seconds
    storage size: 17154655744 Bytes
    https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221026145522_clickbench_pr_34459.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [doris] github-actions[bot] commented on pull request #13681: [enhancement](Nereids) support otherJoinConjuncts in cascades join reorder

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #13681:
URL: https://github.com/apache/doris/pull/13681#issuecomment-1305838849

   PR approved by at least one committer and no changes requested.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org