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

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


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 365b0999206 [fix](planner)fix bug of InlineViewRef's tableNameToSql 
method (#33586)
365b0999206 is described below

commit 365b0999206750abfc8bdfec7c94039a35d85190
Author: starocean999 <40539150+starocean...@users.noreply.github.com>
AuthorDate: Sat Apr 13 18:57:09 2024 +0800

    [fix](planner)fix bug of InlineViewRef's tableNameToSql method (#33586)
    
    * [fix](planner)fix bug of InlineViewRef's tableNameToSql method
    
    * fix fe ut
---
 .../org/apache/doris/analysis/InlineViewRef.java   |  4 +-
 .../org/apache/doris/qe/OlapQueryCacheTest.java    |  8 ++--
 .../suites/ddl_p0/test_create_view.groovy          | 52 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 7 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/InlineViewRef.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/InlineViewRef.java
index 4274ed37f31..7b660d8e391 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InlineViewRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InlineViewRef.java
@@ -487,9 +487,7 @@ public class InlineViewRef extends TableRef {
             aliasSql = ToSqlUtils.getIdentSql(alias);
         }
         StringBuilder sb = new StringBuilder();
-        sb.append("(").append(queryStmt.toSql()).append(") ")
-            .append(aliasSql);
-
+        sb.append("(").append(queryStmt.toSqlWithSelectList()).append(") 
").append(aliasSql);
         return sb.toString();
     }
 
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/qe/OlapQueryCacheTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/qe/OlapQueryCacheTest.java
index 62ef7d5ee0e..1f41cd43f9f 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/qe/OlapQueryCacheTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/qe/OlapQueryCacheTest.java
@@ -967,7 +967,7 @@ public class OlapQueryCacheTest {
             LOG.warn("Sub nokey={}", cache.getNokeyStmt().toSql());
             Assert.assertEquals(cache.getNokeyStmt().toSql(),
                     "SELECT <slot 7> `eventdate` AS `eventdate`, <slot 8> 
sum(`pv`) AS `sum(``pv``)` FROM ("
-                            + "SELECT <slot 3> `eventdate` AS `eventdate`, 
<slot 4> count(`userid`) AS `pv` FROM "
+                            + "SELECT `eventdate`, count(`userid`) `pv` FROM "
                             + "`testCluster:testDb`.`appevent` WHERE `eventid` 
= 1"
                             + " GROUP BY `eventdate`) tbl GROUP BY 
`eventdate`");
 
@@ -989,7 +989,7 @@ public class OlapQueryCacheTest {
             LOG.warn("Sub rewrite={}", sql);
             Assert.assertEquals(sql,
                     "SELECT <slot 7> `eventdate` AS `eventdate`, <slot 8> 
sum(`pv`) AS `sum(``pv``)` FROM ("
-                            + "SELECT <slot 3> `eventdate` AS `eventdate`, 
<slot 4> count(`userid`) AS `pv` FROM "
+                            + "SELECT `eventdate`, count(`userid`) `pv` FROM "
                             + "`testCluster:testDb`.`appevent` WHERE "
                             + "`eventdate` > '2020-01-13' AND `eventdate` < 
'2020-01-16' AND `eventid` = 1 GROUP BY "
                             + "`eventdate`) tbl GROUP BY `eventdate`");
@@ -1123,7 +1123,7 @@ public class OlapQueryCacheTest {
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
         Assert.assertEquals(cacheKey, "SELECT `origin`.`eventdate` AS 
`eventdate`, `origin`.`userid` AS "
-                + "`userid` FROM (SELECT `view2`.`eventdate` AS `eventdate`, 
`view2`.`userid` AS `userid` FROM "
+                + "`userid` FROM (SELECT `view2`.`eventdate` `eventdate`, 
`view2`.`userid` `userid` FROM "
                 + "`testCluster:testDb`.`view2` view2 WHERE 
`view2`.`eventdate` >= '2020-01-12' AND `view2`.`eventdate` "
                 + "<= '2020-01-14') origin|select eventdate, userid FROM 
appevent");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
@@ -1207,7 +1207,7 @@ public class OlapQueryCacheTest {
             Assert.assertEquals(cache.getNokeyStmt().getWhereClause(), null);
             Assert.assertEquals(cache.getSqlWithViewStmt(),
                     "SELECT `origin`.`eventdate` AS `eventdate`, 
`origin`.`cnt` AS `cnt` FROM (SELECT "
-                            + "<slot 4> `eventdate` AS `eventdate`, <slot 5> 
count(`userid`) AS `cnt` FROM "
+                            + "`eventdate`, count(`userid`) `cnt` FROM "
                             + "`testCluster:testDb`.`view2` GROUP BY 
`eventdate`) origin|select eventdate, "
                             + "userid FROM appevent");
         } catch (Exception e) {
diff --git a/regression-test/suites/ddl_p0/test_create_view.groovy 
b/regression-test/suites/ddl_p0/test_create_view.groovy
index a2c7090e6dc..d809a82fc63 100644
--- a/regression-test/suites/ddl_p0/test_create_view.groovy
+++ b/regression-test/suites/ddl_p0/test_create_view.groovy
@@ -153,4 +153,56 @@ suite("test_create_view") {
             select *, array_map(x->x>0,k3) from view_baseall order by k1;
     """
     qt_test_view_5 """ select * from test_view8 order by k1; """
+
+    sql """DROP TABLE IF EXISTS view_column_name_test"""
+    sql """
+     CREATE TABLE IF NOT EXISTS view_column_name_test
+    (
+        `timestamp` DATE NOT NULL ,
+        `type` TINYINT NOT NULL ,
+        `error_code` INT  ,
+        `error_msg` VARCHAR(300) ,
+        `op_id` BIGINT  ,
+        `op_time` DATETIME  ,
+        `target` float ,
+        `source` double,
+        `lost_cost` decimal(12,2),
+        `remark` string ,
+        `op_userid` LARGEINT ,
+        `plate` SMALLINT,
+        `iscompleted` boolean 
+    )
+    DISTRIBUTED BY HASH(`type`) BUCKETS 1
+    PROPERTIES ('replication_num' = '1');
+    """
+
+     sql """ drop view if exists xxx;"""
+    sql """CREATE VIEW
+            `xxx` COMMENT 'VIEW' AS
+            WITH
+            CHENGBENJIA AS (
+                SELECT
+                RN
+                FROM
+                (
+                    SELECT
+                    row_number() OVER (
+                        PARTITION BY `A`.`timestamp`,
+                        `A`.`type`
+                        ORDER BY
+                        CAST(
+                            concat(
+                            CAST(`A`.`error_msg` AS VARCHAR(*)),
+                            CAST(`A`.`remark` AS VARCHAR(*))
+                            ) AS INT
+                        ) DESC NULLS LAST
+                    ) AS `RN`
+                    FROM
+                    view_column_name_test A
+                ) A
+            )
+            SELECT
+            * from CHENGBENJIA;"""
+    sql """select * from xxx;"""
+    sql """ drop view if exists xxx;"""
 }


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

Reply via email to