From 8ef83259ff0e4d407b676e01f67c6de8ac58724f Mon Sep 17 00:00:00 2001 From: feiniaofeiafei <53502832+feiniaofeiafei@users.noreply.github.com> Date: Tue, 9 Jul 2024 20:34:57 +0800 Subject: [PATCH] [fix](planner) fix bug of select stmt toSql(#37274) (#37344) cherry-pick from master #37274 --- .../java/org/apache/doris/analysis/SelectStmt.java | 1 + .../create_view_star_except_and_cast_to_sql.out | 13 ++++++++----- .../create_view_star_except_and_cast_to_sql.groovy | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) 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 efe275c50d..ee2d33b96b 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 @@ -564,6 +564,7 @@ public class SelectStmt extends QueryStmt { // remove excepted columns resultExprs.removeIf(expr -> exceptCols.contains(expr.toColumnLabel())); colLabels.removeIf(exceptCols::contains); + originalExpr = new ArrayList<>(resultExprs); } else { if (needToSql) { originalExpr = new ArrayList<>(); diff --git a/regression-test/data/view_p0/create_view_star_except_and_cast_to_sql.out b/regression-test/data/view_p0/create_view_star_except_and_cast_to_sql.out index 3e05c57230..99c21f0493 100644 --- a/regression-test/data/view_p0/create_view_star_except_and_cast_to_sql.out +++ b/regression-test/data/view_p0/create_view_star_except_and_cast_to_sql.out @@ -1,10 +1,13 @@ -- This file is automatically generated. You should know what you did if you want to edit this -- !test_select_star_except -- -1 1 -2 1 -3 5 -4 5 -6 \N +1 2 +2 3 +3 6 +4 6 +6 6 + +-- !test_select_star_except_sql -- +v_mal_old_create_view CREATE VIEW `v_mal_old_create_view` AS SELECT `regression_test_view_p0`.`mal_old_create_view`.`pk` AS `pk`, `regression_test_view_p0`.`mal_old_create_view`.`b` AS `b` FROM `regression_test_view_p0`.`mal_old_create_view`; utf8mb4 utf8mb4_0900_bin -- !test_sql -- v_mal_old_create_view2 CREATE VIEW `v_mal_old_create_view2` AS SELECT CAST(CAST(`a` AS TEXT) AS TIME(0)) AS `__cast_expr_0` FROM `regression_test_view_p0`.`mal_old_create_view`; utf8mb4 utf8mb4_0900_bin diff --git a/regression-test/suites/view_p0/create_view_star_except_and_cast_to_sql.groovy b/regression-test/suites/view_p0/create_view_star_except_and_cast_to_sql.groovy index e22f929544..56e47cc758 100644 --- a/regression-test/suites/view_p0/create_view_star_except_and_cast_to_sql.groovy +++ b/regression-test/suites/view_p0/create_view_star_except_and_cast_to_sql.groovy @@ -17,7 +17,6 @@ suite("create_view_star_except_and_cast_to_sql") { sql "SET enable_nereids_planner=false;" - sql """ DROP TABLE IF EXISTS mal_old_create_view """ @@ -35,6 +34,7 @@ suite("create_view_star_except_and_cast_to_sql") { sql "create view v_mal_old_create_view as select * except(a) from mal_old_create_view" qt_test_select_star_except "select * from v_mal_old_create_view order by pk,b" + qt_test_select_star_except_sql "show create view v_mal_old_create_view" sql "drop view if EXISTS v_mal_old_create_view2"