This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 97ed597  [Bug] Outer join dispose constexpr error in inlineview (#5986)
97ed597 is described below

commit 97ed59780dd92bb109ded2d23cf21b7564430fd9
Author: HappenLee <[email protected]>
AuthorDate: Thu Jun 10 04:36:29 2021 -0500

    [Bug] Outer join dispose constexpr error in inlineview (#5986)
---
 .../org/apache/doris/analysis/TupleIsNullPredicate.java     |  5 +----
 .../test/java/org/apache/doris/planner/QueryPlanTest.java   | 13 +++++++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleIsNullPredicate.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleIsNullPredicate.java
index 2a7cb2b..872c18c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleIsNullPredicate.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/TupleIsNullPredicate.java
@@ -146,10 +146,7 @@ public class TupleIsNullPredicate extends Predicate {
      * Throws an InternalException if expr evaluation in the BE failed.
      */
     private static boolean requiresNullWrapping(Expr expr, Analyzer analyzer) {
-        if (expr.isConstant() || expr.getType().isNull()) {
-            return false;
-        }
-        return true;
+        return !expr.getType().isNull();
     }
 
     @Override
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 a6e28a3..54a9b51 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
@@ -1432,6 +1432,19 @@ public class QueryPlanTest {
         sql = "SELECT a.aid, b.bid FROM (SELECT 3 AS aid) a JOIN (SELECT 4 AS 
bid) b ON (a.aid=b.bid)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, 
"EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("OUTPUT EXPRS:3 | 4"));
+
+        sql = "SELECT a.k1, b.k2 FROM (SELECT k1 from baseall) a LEFT OUTER 
JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
+        explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, 
"EXPLAIN " + sql);
+        Assert.assertTrue(explainString.contains("if(TupleIsNull(2), NULL, 
999)"));
+
+        sql = "SELECT a.k1, b.k2 FROM (SELECT 1 as k1 from baseall) a RIGHT 
OUTER JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
+        explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, 
"EXPLAIN " + sql);
+        Assert.assertTrue(explainString.contains("if(TupleIsNull(0), NULL, 
1)"));
+
+        sql = "SELECT a.k1, b.k2 FROM (SELECT 1 as k1 from baseall) a FULL 
JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
+        explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, 
"EXPLAIN " + sql);
+        Assert.assertTrue(explainString.contains("if(TupleIsNull(0), NULL, 
1)"));
+        Assert.assertTrue(explainString.contains("if(TupleIsNull(2), NULL, 
999)"));
     }
 
     @Test

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to