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

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


The following commit(s) were added to refs/heads/master by this push:
     new d13406d59e [Bug] (outer join) Fix wrong types in outer join (#11315)
d13406d59e is described below

commit d13406d59ee610da599cee81551daf6760c08e2f
Author: Gabriel <gabrielleeb...@gmail.com>
AuthorDate: Fri Jul 29 14:13:09 2022 +0800

    [Bug] (outer join) Fix wrong types in outer join (#11315)
---
 .../main/java/org/apache/doris/analysis/ExprSubstitutionMap.java    | 6 +++++-
 fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java | 3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExprSubstitutionMap.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExprSubstitutionMap.java
index 42c52ea095..40c44b5bd0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExprSubstitutionMap.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExprSubstitutionMap.java
@@ -249,7 +249,11 @@ public final class ExprSubstitutionMap {
     }
 
     public void substituteLhs(ExprSubstitutionMap lhsSmap, Analyzer analyzer) {
-        lhs = Expr.substituteList(lhs, lhsSmap, analyzer, false);
+        substituteLhs(lhsSmap, analyzer, false);
+    }
+
+    public void substituteLhs(ExprSubstitutionMap lhsSmap, Analyzer analyzer, 
boolean preserveRootTypes) {
+        lhs = Expr.substituteList(lhs, lhsSmap, analyzer, preserveRootTypes);
     }
 
     public List<Expr> getLhs() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java
index bd7db83860..6f1fb8172a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java
@@ -626,7 +626,8 @@ public class HashJoinNode extends PlanNode {
         vIntermediateRightTupleDesc.computeMemLayout();
         // 3. replace srcExpr by intermediate tuple
         Preconditions.checkState(vSrcToOutputSMap != null);
-        vSrcToOutputSMap.substituteLhs(originToIntermediateSmap, analyzer);
+        // Set `preserveRootTypes` to true because we should keep the 
consistent for types. See Issue-11314.
+        vSrcToOutputSMap.substituteLhs(originToIntermediateSmap, analyzer, 
true);
         // 4. replace other conjuncts and conjuncts
         otherJoinConjuncts = Expr.substituteList(otherJoinConjuncts, 
originToIntermediateSmap, analyzer, false);
         if (votherJoinConjunct != null) {


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

Reply via email to