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

morrysnow 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 8e9e1b1bfd8 [fix](planner) Disable infer expr column name when query 
on old optimizer (#25317)
8e9e1b1bfd8 is described below

commit 8e9e1b1bfd8c5f75573a13e00a61c2858d8b0b27
Author: JingDas <114388747+jing...@users.noreply.github.com>
AuthorDate: Mon Oct 16 15:08:52 2023 +0800

    [fix](planner) Disable infer expr column name when query on old optimizer 
(#25317)
    
    Disable infer expr column name when query on old optimizer.
    This bug is be brought in #24990
    
    if your query SQL is
    select id, name, sum(target) FROM db_test.table_test2 group by id, name;
    the result column name when query is as following:
    |id|name |sum(cast(target as DOUBLE))|
    
    when you create view as following:
    CREATE VIEW v1 as select id, name, sum(target) FROM db_test.table_test2 
group by id, name;
    then query the view v1, the result is as following:
    |id|name |__sum_2|
---
 .../doris/analysis/AlterMaterializedViewStmt.java  |   4 +-
 .../java/org/apache/doris/analysis/Analyzer.java   |  12 ++
 .../doris/analysis/CreateTableAsSelectStmt.java    |   1 +
 .../org/apache/doris/analysis/CreateViewStmt.java  |   1 +
 .../org/apache/doris/analysis/SelectListItem.java  |   1 -
 .../java/org/apache/doris/analysis/SelectStmt.java |  12 +-
 .../org/apache/doris/analysis/StatementBase.java   |   5 +
 .../org/apache/doris/qe/OlapQueryCacheTest.java    | 133 +++++++++++++--------
 8 files changed, 113 insertions(+), 56 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterMaterializedViewStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterMaterializedViewStmt.java
index a59ed5b74dc..b0ecc5261a6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterMaterializedViewStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterMaterializedViewStmt.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.UserException;
 import org.apache.doris.mysql.privilege.PrivPredicate;
 import org.apache.doris.qe.ConnectContext;
 
@@ -42,7 +43,8 @@ public class AlterMaterializedViewStmt extends DdlStmt  {
     }
 
     @Override
-    public void analyze(Analyzer analyzer) throws AnalysisException {
+    public void analyze(Analyzer analyzer) throws AnalysisException, 
UserException {
+        super.analyze(analyzer);
         mvName.analyze(analyzer);
         if 
(!Env.getCurrentEnv().getAccessManager().checkTblPriv(ConnectContext.get(), 
mvName.getDb(), mvName.getTbl(),
                 PrivPredicate.ALTER)) {
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 37a1fa0c539..e3e81963797 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
@@ -320,6 +320,10 @@ public class Analyzer {
         // analysis.
         public boolean isExplain;
 
+        // Record the statement clazz that the analyzer would to analyze,
+        // this give an opportunity to control analyzing behavior according to 
the statement type.
+        public Class<? extends StatementBase> rootStatementClazz;
+
         // Indicates whether the query has plan hints.
         public boolean hasPlanHints = false;
 
@@ -568,6 +572,14 @@ public class Analyzer {
         return globalState.isExplain;
     }
 
+    public void setRootStatementClazz(Class<? extends StatementBase> 
statementClazz) {
+        globalState.rootStatementClazz = statementClazz;
+    }
+
+    public Class<? extends StatementBase> getRootStatementClazz() {
+        return globalState.rootStatementClazz;
+    }
+
     public int incrementCallDepth() {
         return ++callDepth;
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
index 3019117942a..f2bca083b3b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
@@ -72,6 +72,7 @@ public class CreateTableAsSelectStmt extends DdlStmt {
         // To avoid duplicate registrations of table/colRefs,
         // create a new root analyzer and clone the query statement for this 
initial pass.
         Analyzer dummyRootAnalyzer = new Analyzer(analyzer.getEnv(), 
analyzer.getContext());
+        super.analyze(dummyRootAnalyzer);
         QueryStmt tmpStmt = queryStmt.clone();
         tmpStmt.analyze(dummyRootAnalyzer);
         this.queryStmt = tmpStmt;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateViewStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateViewStmt.java
index 528b882f848..befbe8a9dc9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateViewStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateViewStmt.java
@@ -55,6 +55,7 @@ public class CreateViewStmt extends BaseViewStmt {
 
     @Override
     public void analyze(Analyzer analyzer) throws UserException {
+        super.analyze(analyzer);
         tableName.analyze(analyzer);
         FeNameFormat.checkTableName(tableName.getTbl());
         viewDefStmt.setNeedToSql(true);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectListItem.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectListItem.java
index 8fc99e29673..34368c7b17e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectListItem.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectListItem.java
@@ -120,7 +120,6 @@ public class SelectListItem {
      * Return a column label for the select list item. Without generate column 
name
      * automatically.
      */
-    @Deprecated
     public String toColumnLabel() {
         Preconditions.checkState(!isStar());
         if (alias != null) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index 47478ba3d7f..8c40f5230ac 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -543,7 +543,17 @@ public class SelectStmt extends QueryStmt {
                         throw new AnalysisException("Subquery is not supported 
in the select list.");
                     }
                     
resultExprs.add(rewriteQueryExprByMvColumnExpr(item.getExpr(), analyzer));
-                    String columnLabel = item.toColumnLabel(i);
+                    String columnLabel = null;
+                    Class<? extends StatementBase> statementClazz = 
analyzer.getRootStatementClazz();
+                    if (statementClazz != null && 
!QueryStmt.class.isAssignableFrom(statementClazz)) {
+                        // Infer column name when item is expr
+                        columnLabel = item.toColumnLabel(i);
+                    }
+                    if (columnLabel == null) {
+                        // column label without position is applicative for 
query and do not infer
+                        // column name when item is expr
+                        columnLabel = item.toColumnLabel();
+                    }
                     SlotRef aliasRef = new SlotRef(null, columnLabel);
                     Expr existingAliasExpr = aliasSMap.get(aliasRef);
                     if (existingAliasExpr != null && 
!existingAliasExpr.equals(item.getExpr())) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StatementBase.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StatementBase.java
index 015edb2fe50..13895f5695b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StatementBase.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StatementBase.java
@@ -78,12 +78,17 @@ public abstract class StatementBase implements ParseNode {
      * were missing from the catalog.
      * It is up to the analysis() implementation to ensure the maximum number 
of missing
      * tables/views get collected in the Analyzer before failing analyze().
+     * Should call the method firstly when override the method, the analyzer 
param should be
+     * the one which statement would use.
      */
     public void analyze(Analyzer analyzer) throws AnalysisException, 
UserException {
         if (isAnalyzed()) {
             return;
         }
         this.analyzer = analyzer;
+        if (analyzer.getRootStatementClazz() == null) {
+            analyzer.setRootStatementClazz(this.getClass());
+        }
         if (Strings.isNullOrEmpty(analyzer.getClusterName())) {
             
ErrorReport.reportAnalysisException(ErrorCode.ERR_CLUSTER_NO_SELECT_CLUSTER);
         }
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 934521a094b..5e2d13003f2 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
@@ -18,7 +18,9 @@
 package org.apache.doris.qe;
 
 import org.apache.doris.analysis.Analyzer;
+import org.apache.doris.analysis.CreateViewStmt;
 import org.apache.doris.analysis.PartitionValue;
+import org.apache.doris.analysis.QueryStmt;
 import org.apache.doris.analysis.SqlParser;
 import org.apache.doris.analysis.SqlScanner;
 import org.apache.doris.analysis.StatementBase;
@@ -165,22 +167,6 @@ public class OlapQueryCacheTest {
         };
         db = new Database(1L, fullDbName);
 
-        OlapTable tbl1 = createOrderTable();
-        OlapTable tbl2 = createProfileTable();
-        OlapTable tbl3 = createEventTable();
-        db.createTable(tbl1);
-        db.createTable(tbl2);
-        db.createTable(tbl3);
-
-        View view1 = createEventView1();
-        View view2 = createEventView2();
-        View view3 = createEventView3();
-        View view4 = createEventNestedView();
-        db.createTable(view1);
-        db.createTable(view2);
-        db.createTable(view3);
-        db.createTable(view4);
-
         new Expectations(catalog) {
             {
                 catalog.getDbNullable(fullDbName);
@@ -334,6 +320,25 @@ public class OlapQueryCacheTest {
 
         analyzer = new Analyzer(env, ctx);
         newRangeList = Lists.newArrayList();
+
+        // table and view init use analyzer, should init after analyzer build
+        OlapTable tbl1 = createOrderTable();
+        db.createTable(tbl1);
+        OlapTable tbl2 = createProfileTable();
+        db.createTable(tbl2);
+        OlapTable tbl3 = createEventTable();
+        db.createTable(tbl3);
+
+        // build view meta inline sql and create view directly, the originStmt 
from inline sql
+        // should be analyzed by create view statement analyzer and then to sql
+        View view1 = createEventView1();
+        db.createTable(view1);
+        View view2 = createEventView2();
+        db.createTable(view2);
+        View view3 = createEventView3();
+        db.createTable(view3);
+        View view4 = createEventNestedView();
+        db.createTable(view4);
     }
 
     private OlapTable createOrderTable() {
@@ -509,14 +514,18 @@ public class OlapQueryCacheTest {
         String originStmt = "select eventdate, COUNT(userid) FROM appevent 
WHERE "
                 + "eventdate>=\"2020-01-12\" and eventdate<=\"2020-01-14\" 
GROUP BY eventdate";
         View view = new View(30000L, "view1", null);
-        view.setInlineViewDefWithSqlMode(originStmt, 0L);
+        Analyzer createViewAnalyzer = new Analyzer(env, ctx);
+        createViewAnalyzer.setRootStatementClazz(CreateViewStmt.class);
+        view.setInlineViewDefWithSqlMode(parseSql(originStmt, 
createViewAnalyzer, true).toSql(), 0L);
         return view;
     }
 
     private View createEventView2() {
         String originStmt = "select eventdate, userid FROM appevent";
         View view = new View(30001L, "view2", null);
-        view.setInlineViewDefWithSqlMode(originStmt, 0L);
+        Analyzer createViewAnalyzer = new Analyzer(env, ctx);
+        createViewAnalyzer.setRootStatementClazz(CreateViewStmt.class);
+        view.setInlineViewDefWithSqlMode(parseSql(originStmt, 
createViewAnalyzer, true).toSql(), 0L);
         return view;
     }
 
@@ -524,7 +533,9 @@ public class OlapQueryCacheTest {
         String originStmt = "select eventdate, COUNT(userid) FROM appevent 
WHERE "
                 + "eventdate>=\"2020-01-12\" and eventdate<=\"2020-01-15\" 
GROUP BY eventdate";
         View view = new View(30002L, "view3", null);
-        view.setInlineViewDefWithSqlMode(originStmt, 0L);
+        Analyzer createViewAnalyzer = new Analyzer(env, ctx);
+        createViewAnalyzer.setRootStatementClazz(CreateViewStmt.class);
+        view.setInlineViewDefWithSqlMode(parseSql(originStmt, 
createViewAnalyzer, true).toSql(), 0L);
         return view;
     }
 
@@ -532,7 +543,10 @@ public class OlapQueryCacheTest {
         String originStmt = "select eventdate, COUNT(userid) FROM view2 WHERE "
                 + "eventdate>=\"2020-01-12\" and eventdate<=\"2020-01-14\" 
GROUP BY eventdate";
         View view = new View(30003L, "view4", null);
-        view.setInlineViewDefWithSqlMode(originStmt, 0L);
+        Analyzer createViewAnalyzer = new Analyzer(env, ctx);
+        createViewAnalyzer.setRootStatementClazz(CreateViewStmt.class);
+        view.setInlineViewDefWithSqlMode(
+                parseSql(originStmt, createViewAnalyzer, true).toSql(), 0L);
         return view;
     }
 
@@ -564,11 +578,18 @@ public class OlapQueryCacheTest {
     }
 
     private StatementBase parseSql(String sql) {
+        return parseSql(sql, null, false);
+    }
+
+    private StatementBase parseSql(String sql, Analyzer analyzer, boolean 
needToSql) {
         SqlParser parser = new SqlParser(new SqlScanner(new 
StringReader(sql)));
         StatementBase parseStmt = null;
         try {
             parseStmt = SqlParserUtils.getFirstStmt(parser);
-            parseStmt.analyze(analyzer);
+            if (parseStmt instanceof QueryStmt) {
+                ((QueryStmt) parseStmt).setNeedToSql(needToSql);
+            }
+            parseStmt.analyze(analyzer == null ? this.analyzer : analyzer);
         } catch (AnalysisException e) {
             LOG.warn("Part,an_ex={}", e);
             Assert.fail(e.getMessage());
@@ -1023,7 +1044,7 @@ public class OlapQueryCacheTest {
             cache.rewriteSelectStmt(null);
             LOG.warn("Sub nokey={}", cache.getNokeyStmt().toSql());
             Assert.assertEquals(cache.getNokeyStmt().toSql(),
-                    "SELECT <slot 7> `eventdate` AS `eventdate`, <slot 8> 
sum(`pv`) AS `__sum_1` FROM ("
+                    "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 "
                             + "`testCluster:testDb`.`appevent` WHERE `eventid` 
= 1"
                             + " GROUP BY `eventdate`) tbl GROUP BY 
`eventdate`");
@@ -1045,7 +1066,7 @@ public class OlapQueryCacheTest {
             sql = ca.getRewriteStmt().toSql();
             LOG.warn("Sub rewrite={}", sql);
             Assert.assertEquals(sql,
-                    "SELECT <slot 7> `eventdate` AS `eventdate`, <slot 8> 
sum(`pv`) AS `__sum_1` FROM ("
+                    "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 "
                             + "`testCluster:testDb`.`appevent` WHERE "
                             + "`eventdate` > '2020-01-13' AND `eventdate` < 
'2020-01-16' AND `eventid` = 1 GROUP BY "
@@ -1102,7 +1123,7 @@ public class OlapQueryCacheTest {
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
         Assert.assertEquals(cacheKey, "SELECT <slot 2> `eventdate` AS 
`eventdate`, <slot 3> count(`userid`) AS "
-                + "`__count_1` FROM `testCluster:testDb`.`appevent` WHERE 
`eventdate` >= '2020-01-12' AND "
+                + "`count(``userid``)` FROM `testCluster:testDb`.`appevent` 
WHERE `eventdate` >= '2020-01-12' AND "
                 + "`eventdate` <= '2020-01-14' GROUP BY `eventdate`|");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
@@ -1140,9 +1161,11 @@ public class OlapQueryCacheTest {
 
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
-        Assert.assertEquals(cacheKey, "SELECT 
`testCluster:testDb`.`view1`.`eventdate` AS `eventdate`, 
`testCluster:testDb`.`view1`."
-                + "`__count_1` AS `__count_1` FROM 
`testCluster:testDb`.`view1`|select eventdate, COUNT(userid) "
-                + "FROM appevent WHERE eventdate>=\"2020-01-12\" and 
eventdate<=\"2020-01-14\" GROUP BY eventdate");
+        Assert.assertEquals(cacheKey, "SELECT 
`testCluster:testDb`.`view1`.`eventdate` AS `eventdate`, "
+                + "`testCluster:testDb`.`view1`.`__count_1` AS `__count_1` 
FROM `testCluster:testDb`.`view1`|"
+                + "SELECT `eventdate` AS `eventdate`, count(`userid`) AS 
`__count_1` FROM "
+                + "`testCluster:testDb`.`appevent` WHERE `eventdate` >= 
'2020-01-12' AND "
+                + "`eventdate` <= '2020-01-14' GROUP BY `eventdate`");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
 
@@ -1159,9 +1182,9 @@ public class OlapQueryCacheTest {
 
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
-        Assert.assertEquals(cacheKey, "SELECT * from testDb.view1"
-                    + "|select eventdate, COUNT(userid) FROM appevent "
-                    + "WHERE eventdate>=\"2020-01-12\" and 
eventdate<=\"2020-01-14\" GROUP BY eventdate");
+        Assert.assertEquals(cacheKey, "SELECT * from testDb.view1|SELECT 
`eventdate` AS `eventdate`, "
+                + "count(`userid`) AS `__count_1` FROM 
`testCluster:testDb`.`appevent` "
+                + "WHERE `eventdate` >= '2020-01-12' AND `eventdate` <= 
'2020-01-14' GROUP BY `eventdate`");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
 
@@ -1185,10 +1208,11 @@ 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 "
-                + "`testCluster:testDb`.`view2` view2 WHERE 
`view2`.`eventdate` >= '2020-01-12' AND `view2`.`eventdate` "
-                + "<= '2020-01-14') origin|select eventdate, userid FROM 
appevent");
+        Assert.assertEquals(cacheKey, "SELECT `origin`.`eventdate` AS 
`eventdate`, "
+                + "`origin`.`userid` AS `userid` FROM (SELECT 
`view2`.`eventdate` AS `eventdate`, "
+                + "`view2`.`userid` AS `userid` FROM 
`testCluster:testDb`.`view2` view2 "
+                + "WHERE `view2`.`eventdate` >= '2020-01-12' AND 
`view2`.`eventdate` <= '2020-01-14') origin|"
+                + "SELECT `eventdate` AS `eventdate`, `userid` AS `userid` 
FROM `testCluster:testDb`.`appevent`");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
 
@@ -1214,11 +1238,11 @@ public class OlapQueryCacheTest {
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
         Assert.assertEquals(cacheKey, "select origin.eventdate as eventdate, 
origin.userid as userid\n"
-                    + "from (\n"
-                    + "    select view2.eventdate as eventdate, view2.userid 
as userid \n"
-                    + "    from testDb.view2 view2 \n"
-                    + "    where view2.eventdate >=\"2020-01-12\" and 
view2.eventdate <= \"2020-01-14\"\n"
-                    + ") origin" + "|select eventdate, userid FROM appevent");
+                + "from (\n"
+                + "    select view2.eventdate as eventdate, view2.userid as 
userid \n"
+                + "    from testDb.view2 view2 \n"
+                + "    where view2.eventdate >=\"2020-01-12\" and 
view2.eventdate <= \"2020-01-14\"\n"
+                + ") origin|SELECT `eventdate` AS `eventdate`, `userid` AS 
`userid` FROM `testCluster:testDb`.`appevent`");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
 
@@ -1238,10 +1262,11 @@ public class OlapQueryCacheTest {
 
             cache.rewriteSelectStmt(null);
             Assert.assertEquals(cache.getNokeyStmt().getWhereClause(), null);
-            Assert.assertEquals(cache.getSqlWithViewStmt(), "SELECT 
`testCluster:testDb`.`view3`.`eventdate` AS "
-                    + "`eventdate`, `testCluster:testDb`.`view3`.`__count_1` 
AS `__count_1` FROM "
-                    + "`testCluster:testDb`.`view3`|select eventdate, 
COUNT(userid) FROM appevent WHERE eventdate>="
-                    + "\"2020-01-12\" and eventdate<=\"2020-01-15\" GROUP BY 
eventdate");
+            Assert.assertEquals(cache.getSqlWithViewStmt(), "SELECT 
`testCluster:testDb`.`view3`.`eventdate` "
+                    + "AS `eventdate`, 
`testCluster:testDb`.`view3`.`__count_1` AS `__count_1` "
+                    + "FROM `testCluster:testDb`.`view3`|SELECT `eventdate` AS 
`eventdate`, count(`userid`) "
+                    + "AS `__count_1` FROM `testCluster:testDb`.`appevent` 
WHERE `eventdate` >= '2020-01-12' "
+                    + "AND `eventdate` <= '2020-01-15' GROUP BY `eventdate`");
         } catch (Exception e) {
             LOG.warn("ex={}", e);
             Assert.fail(e.getMessage());
@@ -1272,9 +1297,10 @@ public class OlapQueryCacheTest {
             cache.rewriteSelectStmt(null);
             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 "
-                            + "`testDb`.`view2` GROUP BY `eventdate`) 
origin|select eventdate, userid FROM appevent");
+                    "SELECT `origin`.`eventdate` AS `eventdate`, 
`origin`.`cnt` AS `cnt` "
+                            + "FROM (SELECT <slot 4> `eventdate` AS 
`eventdate`, <slot 5> count(`userid`) AS `cnt` "
+                            + "FROM `testDb`.`view2` GROUP BY `eventdate`) 
origin|SELECT `eventdate` AS `eventdate`, "
+                            + "`userid` AS `userid` FROM 
`testCluster:testDb`.`appevent`");
         } catch (Exception e) {
             LOG.warn("ex={}", e);
             Assert.fail(e.getMessage());
@@ -1295,9 +1321,10 @@ public class OlapQueryCacheTest {
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
         Assert.assertEquals(cacheKey, "SELECT 
`testCluster:testDb`.`view4`.`eventdate` AS `eventdate`, "
-                + "`testCluster:testDb`.`view4`.`__count_1` AS `__count_1` 
FROM `testCluster:testDb`.`view4`|select "
-                + "eventdate, COUNT(userid) FROM view2 WHERE 
eventdate>=\"2020-01-12\" and "
-                + "eventdate<=\"2020-01-14\" GROUP BY eventdate|select 
eventdate, userid FROM appevent");
+                + "`testCluster:testDb`.`view4`.`__count_1` AS `__count_1` 
FROM `testCluster:testDb`.`view4`|"
+                + "SELECT `eventdate` AS `eventdate`, count(`userid`) AS 
`__count_1` FROM `testDb`.`view2` "
+                + "WHERE `eventdate` >= '2020-01-12' AND `eventdate` <= 
'2020-01-14' GROUP BY `eventdate`|"
+                + "SELECT `eventdate` AS `eventdate`, `userid` AS `userid` 
FROM `testCluster:testDb`.`appevent`");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
 
@@ -1314,10 +1341,10 @@ public class OlapQueryCacheTest {
 
         SqlCache sqlCache = (SqlCache) ca.getCache();
         String cacheKey = sqlCache.getSqlWithViewStmt();
-        Assert.assertEquals(cacheKey, "SELECT * from testDb.view4"
-                    + "|select eventdate, COUNT(userid) FROM view2 "
-                    + "WHERE eventdate>=\"2020-01-12\" and 
eventdate<=\"2020-01-14\" GROUP BY eventdate"
-                    + "|select eventdate, userid FROM appevent");
+        Assert.assertEquals(cacheKey, "SELECT * from testDb.view4|SELECT 
`eventdate` AS `eventdate`, "
+                + "count(`userid`) AS `__count_1` FROM `testDb`.`view2` WHERE 
`eventdate` >= '2020-01-12' AND "
+                + "`eventdate` <= '2020-01-14' GROUP BY `eventdate`|SELECT 
`eventdate` AS `eventdate`, "
+                + "`userid` AS `userid` FROM `testCluster:testDb`.`appevent`");
         Assert.assertEquals(selectedPartitionIds.size(), 
sqlCache.getSumOfPartitionNum());
     }
 


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

Reply via email to