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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]