branch-2.1: [fix](metadata) replace view will break view's metadata #51058 (#52043)

cherry-pick from #51058
This commit is contained in:
morrySnow
2025-06-20 19:49:03 +08:00
committed by GitHub
parent f58b3204ca
commit a42fe9f6e8
3 changed files with 39 additions and 0 deletions

View File

@ -5463,6 +5463,7 @@ public class Env {
AlterViewStmt alterViewStmt = new AlterViewStmt(stmt.getTableName(), stmt.getColWithComments(),
stmt.getViewDefStmt());
alterViewStmt.setInlineViewDef(stmt.getInlineViewDef());
alterViewStmt.setFinalColumns(stmt.getColumns());
try {
alterView(alterViewStmt);
} catch (UserException e) {

View File

@ -1,10 +1,30 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !desc_view_tbl1 --
k1 int Yes true \N
k2 int Yes false \N NONE
v int Yes false \N NONE
-- !desc_view_tbl2 --
k1 int Yes true \N
k2 int Yes false \N NONE
v int Yes false \N NONE
-- !desc_view_upper --
k1 int Yes false \N
k2 int Yes false \N
v int Yes false \N
-- !sql_1 --
1 1 1
-- !sql_2 --
2 2 2
-- !desc_view_upper_after_replace --
k1 int Yes false \N
k2 int Yes false \N
v int Yes false \N
-- !sql_3 --
1 1 1

View File

@ -33,6 +33,14 @@ suite("test_create_or_replace_view") {
DUPLICATE KEY(k1) DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES( "replication_num" = "1");
"""
qt_desc_view_tbl1 """
desc test_create_or_replace_view_tbl1
"""
qt_desc_view_tbl2 """
desc test_create_or_replace_view_tbl2
"""
sql """INSERT INTO test_create_or_replace_view_tbl1 VALUES(1,1,1)"""
sql """INSERT INTO test_create_or_replace_view_tbl2 VALUES(2,2,2)"""
sql "sync"
@ -43,6 +51,11 @@ suite("test_create_or_replace_view") {
CREATE VIEW IF NOT EXISTS view_test_create_or_replace_view
AS SELECT * FROM test_create_or_replace_view_tbl1;
"""
qt_desc_view_upper """
desc view_test_create_or_replace_view
"""
qt_sql_1 """select * from view_test_create_or_replace_view"""
// create or replace view in nereids
@ -51,6 +64,11 @@ suite("test_create_or_replace_view") {
AS SELECT * FROM test_create_or_replace_view_tbl2;
"""
qt_sql_2 """select * from view_test_create_or_replace_view"""
qt_desc_view_upper_after_replace """
desc view_test_create_or_replace_view
"""
test {
sql """
CREATE OR REPLACE VIEW IF NOT EXISTS view_test_create_or_replace_view