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