This is an automated email from the ASF dual-hosted git repository.
zhaoc 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 a480dec Do not wrap NULL type tuple (#4245)
a480dec is described below
commit a480dec7a47ad182ed89349af1260b2e81a73967
Author: Lijia Liu <[email protected]>
AuthorDate: Tue Aug 11 09:38:42 2020 +0800
Do not wrap NULL type tuple (#4245)
Do not wrap NULL type expr to IF(TupleIsNull(tids), NULL, expr)
---
fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java | 1 +
.../main/java/org/apache/doris/analysis/TupleIsNullPredicate.java | 2 +-
.../src/test/java/org/apache/doris/analysis/SelectStmtTest.java | 7 +++++++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
index 89b5138..3094288 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
@@ -61,6 +61,7 @@ public class CastExpr extends Expr {
try {
analyze();
} catch (AnalysisException ex) {
+ LOG.warn("Implicit casts fail", ex);
Preconditions.checkState(false,
"Implicit casts should never throw analysis
exception.");
}
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 fedf720..3fb4556 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,7 +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()) {
+ if (expr.isConstant() || expr.getType().isNull()) {
return false;
}
return true;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
index 396cd35..84c7757 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
@@ -343,4 +343,11 @@ public class SelectStmtTest {
String sql = "SELECT * from baseall where k1 > (select min(k1) from
tbl1 where baseall.k1 = tbl1.k4 and baseall.k2 = tbl1.k2)";
dorisAssert.query(sql).explainQuery();
}
+
+ @Test
+ public void testOuterJoinNullUnionView() throws Exception{
+ String sql = "WITH test_view(k) AS(SELECT NULL AS k UNION ALL SELECT
NULL AS k )\n" +
+ "SELECT v1.k FROM test_view AS v1 LEFT OUTER JOIN test_view AS
v2 ON v1.k=v2.k";
+ dorisAssert.query(sql).explainQuery();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]