From d81e2ebcc8489e8b435cf5cd9de410f9e3738827 Mon Sep 17 00:00:00 2001 From: yujun Date: Wed, 5 Mar 2025 10:04:25 +0800 Subject: [PATCH] branch-2.1: [fix](nereids) fix create/alter view column name force cast to lower case #48569 (#48601) cherry pick from #48569 --- .../nereids/parser/LogicalPlanBuilder.java | 3 +-- .../data/mtmv_p0/test_base_mtmv.out | 10 ++++++++++ regression-test/data/view_p0/view_p0.out | 9 +++++++++ .../suites/mtmv_p0/test_base_mtmv.groovy | 13 +++++++++++++ regression-test/suites/view_p0/view_p0.groovy | 19 +++++++++++++++++++ 5 files changed, 52 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java index 30aa9d7e45..92595356e5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java @@ -726,8 +726,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor { public SimpleColumnDefinition visitSimpleColumnDef(SimpleColumnDefContext ctx) { String comment = ctx.STRING_LITERAL() == null ? "" : LogicalPlanBuilderAssistant.escapeBackSlash( ctx.STRING_LITERAL().getText().substring(1, ctx.STRING_LITERAL().getText().length() - 1)); - return new SimpleColumnDefinition(ctx.colName.getText().toLowerCase(), - comment); + return new SimpleColumnDefinition(ctx.colName.getText(), comment); } /** diff --git a/regression-test/data/mtmv_p0/test_base_mtmv.out b/regression-test/data/mtmv_p0/test_base_mtmv.out index 6fb0d5f98c..68073a91bb 100644 --- a/regression-test/data/mtmv_p0/test_base_mtmv.out +++ b/regression-test/data/mtmv_p0/test_base_mtmv.out @@ -44,3 +44,13 @@ multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS -- !success -- multi_mv_test_base_mtmv NORMAL SUCCESS +-- !desc_mv_1 -- +event_day date Yes true \N +id bigint Yes true \N +username varchar(20) Yes true \N + +-- !desc_mv_2 -- +event_Day date Yes true \N +Id bigint Yes true \N +UserName varchar(20) Yes true \N + diff --git a/regression-test/data/view_p0/view_p0.out b/regression-test/data/view_p0/view_p0.out index 606dc0b670..c579290702 100644 --- a/regression-test/data/view_p0/view_p0.out +++ b/regression-test/data/view_p0/view_p0.out @@ -24,3 +24,12 @@ internal regression_test_view_p0 test_view select 1,to_base64(AES_ENCRYPT('doris -- !sql2 -- +-- !desc_view_1 -- +c_date varchar(50) Yes false \N + +-- !desc_view_2 -- +C_DatE varchar(50) Yes false \N + +-- !desc_view_3 -- +c_dATE varchar(65533) Yes false \N + diff --git a/regression-test/suites/mtmv_p0/test_base_mtmv.groovy b/regression-test/suites/mtmv_p0/test_base_mtmv.groovy index ffe221d030..319fd93384 100644 --- a/regression-test/suites/mtmv_p0/test_base_mtmv.groovy +++ b/regression-test/suites/mtmv_p0/test_base_mtmv.groovy @@ -168,6 +168,19 @@ suite("test_base_mtmv","mtmv") { order_qt_success "select Name,State,RefreshState from mv_infos('database'='${dbName}') where Name='${mvName}'" mv_rewrite_success_without_check_chosen("""${rewriteSql}""", "${mvName}") + qt_desc_mv_1 "desc ${mvName}" + + sql """ DROP MATERIALIZED VIEW ${mvName}""" + sql """ + CREATE MATERIALIZED VIEW ${mvName}(event_Day,Id,UserName) + BUILD DEFERRED REFRESH COMPLETE ON MANUAL + DISTRIBUTED BY RANDOM BUCKETS 2 + PROPERTIES ('replication_num' = '1') + AS + ${querySql}; + """ + qt_desc_mv_2 "desc ${mvName}" + sql """drop table if exists `${tableName}`""" sql """drop table if exists `${newTableName}`""" sql """ DROP MATERIALIZED VIEW ${mvName}""" diff --git a/regression-test/suites/view_p0/view_p0.groovy b/regression-test/suites/view_p0/view_p0.groovy index 2727a3e6f8..9c0dd4a3d3 100644 --- a/regression-test/suites/view_p0/view_p0.groovy +++ b/regression-test/suites/view_p0/view_p0.groovy @@ -165,6 +165,25 @@ suite("view_p0") { sql """select * from test_view_table2_view;""" sql """set enable_nereids_planner=true;""" sql """select * from test_view_table2_view;""" + + sql "ALTER VIEW test_view_table2_view as select c_date from test_view_table2" + qt_desc_view_1 "DESC test_view_table2_view" + + sql "ALTER VIEW test_view_table2_view(C_DatE) as select c_date from test_view_table2" + qt_desc_view_2 "DESC test_view_table2_view" + + sql """DROP VIEW IF EXISTS test_view_table2_view""" + sql """CREATE VIEW `test_view_table2_view` (c_dATE) + AS + SELECT + date_format(c_date,'%Y-%m-%d') AS `CREATE_DATE` + FROM + test_view_table2 + GROUP BY + date_format(c_date, '%Y-%m-%d'); + """ + qt_desc_view_3 "DESC test_view_table2_view" + sql """ drop view if exists test_view_table2_view;""" sql """DROP TABLE IF EXISTS test_view_table2""" }