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

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
     new 3e33f09a95 [fix](planner)fix bug of resolve column (#23649)
3e33f09a95 is described below

commit 3e33f09a95ce82504ad2eb70743cb17730a101e6
Author: starocean999 <40539150+starocean...@users.noreply.github.com>
AuthorDate: Wed Aug 30 11:11:57 2023 +0800

    [fix](planner)fix bug of resolve column (#23649)
    
    pick from master #23512
---
 .../java/org/apache/doris/analysis/Analyzer.java   | 29 +++++++-
 .../test_inlineview_error_msg.groovy               | 80 ++++++++++++++++++++++
 2 files changed, 108 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 11032bcb7d..5f2b520118 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
@@ -899,7 +899,34 @@ public class Analyzer {
             // ===================================================
             // Someone may concern that if t2 is not alias of t, this fix will 
cause incorrect resolve. In fact,
             // this does not happen, since we push t2.a in (1.2) down to this 
inline view, t2 must be alias of t.
-            if (d == null && isInlineView && 
newTblName.getTbl().equals(explicitViewAlias)) {
+            // create table tmp_can_drop_t1 (
+            //     cust_id varchar(96),
+            //     user_id varchar(96)
+            // )
+            // create table tmp_can_drop_t2 (
+            //     cust_id varchar(96),
+            //     usr_id varchar(96)
+            // )
+            // select
+            // a.cust_id,
+            // a.usr_id
+            // from (
+            // select
+            //     a.cust_id,
+            //     a.usr_id, --------->(report error, because there is no 
user_id column in tmp_can_drop_t1)
+            //     a.user_id
+            // from tmp_can_drop_t1 a
+            // full join (
+            //     select
+            //     cust_id,
+            //     usr_id
+            //     from
+            //     tmp_can_drop_t2
+            // ) b
+            // on b.cust_id = a.cust_id
+            // ) a;
+            if (d == null && isInlineView && 
newTblName.getTbl().equals(explicitViewAlias)
+                    && !tupleByAlias.containsKey(newTblName.getTbl())) {
                 d = resolveColumnRef(colName);
             }
         }
diff --git 
a/regression-test/suites/correctness_p0/test_inlineview_error_msg.groovy 
b/regression-test/suites/correctness_p0/test_inlineview_error_msg.groovy
new file mode 100644
index 0000000000..7e739570e0
--- /dev/null
+++ b/regression-test/suites/correctness_p0/test_inlineview_error_msg.groovy
@@ -0,0 +1,80 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_inlineview_error_msg") {
+    sql "set enable_nereids_planner=false"
+    sql """
+        drop table if exists tmp_can_drop_t1;
+    """
+
+    sql """
+        drop table if exists tmp_can_drop_t2;
+    """
+
+    sql """
+        create table tmp_can_drop_t1 (
+            cust_id varchar(96),
+            user_id varchar(96)
+        )
+        DISTRIBUTED by random BUCKETS 1
+        PROPERTIES(
+            "replication_num" = "1"
+        );
+    """
+
+    sql """
+        create table tmp_can_drop_t2 (
+            cust_id varchar(96),
+            usr_id varchar(96)
+        )
+        DISTRIBUTED by random BUCKETS 1
+        PROPERTIES(
+            "replication_num" = "1"
+        );
+    """
+    test {
+            sql """
+            select
+            a.cust_id,
+            a.usr_id
+            from (
+            select
+                a.cust_id,
+                a.usr_id,
+                a.user_id
+            from tmp_can_drop_t1 a
+            full join (
+                select
+                cust_id,
+                usr_id
+                from
+                tmp_can_drop_t2
+            ) b
+            on b.cust_id = a.cust_id
+            ) a;
+        """
+        exception "Unknown column 'usr_id' in 'a'"
+    }
+
+    sql """
+        drop table if exists tmp_can_drop_t1;
+    """
+
+    sql """
+        drop table if exists tmp_can_drop_t2;
+    """
+}
\ No newline at end of file


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

Reply via email to