From 09fb6988df98e53f49e749dbc88cdfc7dac066f8 Mon Sep 17 00:00:00 2001 From: morrySnow Date: Mon, 27 Mar 2023 15:06:26 +0800 Subject: [PATCH] [fix](planner) forbid inline view but not the subquery resolve from parent tuples pick from #18032 on master branch --- .../src/main/java/org/apache/doris/analysis/Analyzer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java index 274170693eb5ff..cf6c543ec7a8cb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java @@ -143,6 +143,7 @@ public class Analyzer { // Flag indicating if this analyzer instance belongs to a subquery. private boolean isSubquery = false; + private boolean isFirstScopeInSubquery = false; // Flag indicating if this analyzer instance belongs to an inlineview. private boolean isInlineView = false; @@ -167,6 +168,7 @@ public class Analyzer { public void setIsSubquery() { isSubquery = true; + isFirstScopeInSubquery = true; globalState.containsSubquery = true; } @@ -789,7 +791,7 @@ public SlotDescriptor registerColumnRef(TableName tblName, String colName) throw * This column could not be resolved because doris can only resolved the parent column instead of grandpa. * The exception of this query like that: Unknown column 'k1' in 'a' */ - if (d == null && hasAncestors() && isSubquery) { + if (d == null && hasAncestors() && isSubquery && isFirstScopeInSubquery) { // analyzer father for subquery if (newTblName == null) { d = getParentAnalyzer().resolveColumnRef(colName);