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]