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 65ccd32babc [fix](planner) fix bug of InlineViewRef's tableNameToSql
method (#33575)
65ccd32babc is described below
commit 65ccd32babc586ee4af16563b27ace6cee56a4f0
Author: starocean999 <[email protected]>
AuthorDate: Mon Apr 15 14:59:09 2024 +0800
[fix](planner) fix bug of InlineViewRef's tableNameToSql method (#33575)
---
.../org/apache/doris/analysis/InlineViewRef.java | 4 +--
.../org/apache/doris/qe/OlapQueryCacheTest.java | 10 +++----
.../suites/ddl_p0/test_create_view.groovy | 32 +++++++++++++++++++++-
3 files changed, 37 insertions(+), 9 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 86e93c42061..a6418abf3b0 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
@@ -514,9 +514,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 9ff7042e76e..5767f1c4b78 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
@@ -975,7 +975,7 @@ public class OlapQueryCacheTest {
LOG.warn("Sub nokey={}", cache.getNokeyStmt().toSql());
Assert.assertEquals(cache.getNokeyStmt().toSql(),
"SELECT `eventdate` AS `eventdate`, sum(`pv`) AS
`sum(``pv``)` "
- + "FROM (SELECT `eventdate` AS `eventdate`,
count(`userid`) AS `pv` "
+ + "FROM (SELECT `eventdate`, count(`userid`) `pv` "
+ "FROM `testDb`.`appevent` WHERE (`eventid` = 1)
GROUP BY `eventdate`) tbl "
+ "GROUP BY `eventdate`");
@@ -997,7 +997,7 @@ public class OlapQueryCacheTest {
LOG.warn("Sub rewrite={}", sql);
Assert.assertEquals(sql,
"SELECT `eventdate` AS `eventdate`, sum(`pv`) AS
`sum(``pv``)` "
- + "FROM (SELECT `eventdate` AS `eventdate`,
count(`userid`) AS `pv` "
+ + "FROM (SELECT `eventdate`, count(`userid`) `pv` "
+ "FROM `testDb`.`appevent` WHERE (`eventdate` >
'2020-01-13') "
+ "AND (`eventdate` < '2020-01-16') AND (`eventid`
= 1) GROUP BY `eventdate`) tbl "
+ "GROUP BY `eventdate`");
@@ -1133,8 +1133,8 @@ 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 `testDb`.`view2` view2 "
+ + "`origin`.`userid` AS `userid` FROM (SELECT
`view2`.`eventdate` `eventdate`, "
+ + "`view2`.`userid` `userid` FROM `testDb`.`view2` view2 "
+ "WHERE (`view2`.`eventdate` >= '2020-01-12') AND
(`view2`.`eventdate` <= '2020-01-14')) origin|"
+ "SELECT `eventdate` AS `eventdate`, `userid` AS `userid`
FROM `testDb`.`appevent`");
Assert.assertEquals(selectedPartitionIds.size(),
sqlCache.getSumOfPartitionNum());
@@ -1219,7 +1219,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 `eventdate` AS `eventdate`,
count(`userid`) AS `cnt` "
+ + "FROM (SELECT `eventdate`, count(`userid`) `cnt`
"
+ "FROM `testDb`.`view2` GROUP BY `eventdate`)
origin|SELECT `eventdate` "
+ "AS `eventdate`, `userid` AS `userid` FROM
`testDb`.`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 e66798e50bb..e5d6f41d319 100644
--- a/regression-test/suites/ddl_p0/test_create_view.groovy
+++ b/regression-test/suites/ddl_p0/test_create_view.groovy
@@ -204,4 +204,34 @@ suite("test_create_view") {
view_column_name_test
"""
qt_test_view_6 """ SHOW VIEW FROM view_column_name_test;"""
-}
\ No newline at end of file
+
+ 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: [email protected]
For additional commands, e-mail: [email protected]