This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 6804ae5827c [enhance](mtmv)reduce the behavior of triggering the mtmv
state to change to schema_change (#36513) (#37122)
6804ae5827c is described below
commit 6804ae5827c3a92233424aa29f0c9fb87ed18be2
Author: zhangdong <[email protected]>
AuthorDate: Wed Jul 3 10:42:03 2024 +0800
[enhance](mtmv)reduce the behavior of triggering the mtmv state to change
to schema_change (#36513) (#37122)
pick from https://github.com/apache/doris/pull/36513
---
.../main/java/org/apache/doris/alter/Alter.java | 16 +++-
.../org/apache/doris/analysis/AddColumnClause.java | 5 ++
.../apache/doris/analysis/AddColumnsClause.java | 5 ++
.../apache/doris/analysis/AddPartitionClause.java | 5 ++
.../doris/analysis/AddPartitionLikeClause.java | 5 ++
.../org/apache/doris/analysis/AddRollupClause.java | 5 ++
.../org/apache/doris/analysis/AlterClause.java | 4 +
.../apache/doris/analysis/AlterTableClause.java | 2 +
.../apache/doris/analysis/BuildIndexClause.java | 5 ++
.../apache/doris/analysis/ColumnRenameClause.java | 5 ++
.../apache/doris/analysis/CreateIndexClause.java | 5 ++
.../apache/doris/analysis/DropColumnClause.java | 5 ++
.../org/apache/doris/analysis/DropIndexClause.java | 5 ++
.../apache/doris/analysis/DropPartitionClause.java | 5 ++
.../analysis/DropPartitionFromIndexClause.java | 5 ++
.../apache/doris/analysis/DropRollupClause.java | 5 ++
.../apache/doris/analysis/EnableFeatureClause.java | 5 ++
.../apache/doris/analysis/ModifyColumnClause.java | 5 ++
.../doris/analysis/ModifyColumnCommentClause.java | 5 ++
.../doris/analysis/ModifyDistributionClause.java | 5 ++
.../apache/doris/analysis/ModifyEngineClause.java | 5 ++
.../doris/analysis/ModifyPartitionClause.java | 5 ++
.../doris/analysis/ModifyTableCommentClause.java | 5 ++
.../analysis/ModifyTablePropertiesClause.java | 5 ++
.../doris/analysis/PartitionRenameClause.java | 5 ++
.../doris/analysis/ReorderColumnsClause.java | 5 ++
.../doris/analysis/ReplacePartitionClause.java | 5 ++
.../apache/doris/analysis/ReplaceTableClause.java | 5 ++
.../apache/doris/analysis/RollupRenameClause.java | 5 ++
.../apache/doris/analysis/TableRenameClause.java | 5 ++
regression-test/data/mtmv_p0/test_base_mtmv.out | 39 ++++++++--
.../suites/mtmv_p0/test_base_mtmv.groovy | 91 ++++++++++++++++++----
32 files changed, 263 insertions(+), 24 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
index edc038e75b3..33ed6c9e550 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
@@ -194,8 +194,6 @@ public class Alter {
} else if (currentAlterOps.hasSchemaChangeOp()) {
// if modify storage type to v2, do schema change to convert all
related tablets to segment v2 format
schemaChangeHandler.process(stmt.toSql(), alterClauses, db,
olapTable);
- // if base table schemaChanged, need change mtmv status
- Env.getCurrentEnv().getMtmvService().alterTable(olapTable);
} else if (currentAlterOps.hasRollupOp()) {
materializedViewHandler.process(alterClauses, db, olapTable);
} else if (currentAlterOps.hasPartitionOp()) {
@@ -251,7 +249,6 @@ public class Alter {
}
} else if (currentAlterOps.hasRenameOp()) {
processRename(db, olapTable, alterClauses);
- Env.getCurrentEnv().getMtmvService().alterTable(olapTable);
} else if (currentAlterOps.hasReplaceTableOp()) {
processReplaceTable(db, olapTable, alterClauses);
} else if
(currentAlterOps.contains(AlterOpType.MODIFY_TABLE_PROPERTY_SYNC)) {
@@ -270,10 +267,21 @@ public class Alter {
} else {
throw new DdlException("Invalid alter operations: " +
currentAlterOps);
}
-
+ if (needChangeMTMVState(alterClauses)) {
+ Env.getCurrentEnv().getMtmvService().alterTable(olapTable);
+ }
return needProcessOutsideTableLock;
}
+ private boolean needChangeMTMVState(List<AlterClause> alterClauses) {
+ for (AlterClause alterClause : alterClauses) {
+ if (alterClause.needChangeMTMVState()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private void processModifyTableComment(Database db, OlapTable tbl,
AlterClause alterClause)
throws DdlException {
tbl.writeLockOrDdlException();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnClause.java
index 08fa27151dc..f27f3204813 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnClause.java
@@ -115,6 +115,11 @@ public class AddColumnClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnsClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnsClause.java
index 765c6eb6856..04ee893bd7c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnsClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddColumnsClause.java
@@ -83,6 +83,11 @@ public class AddColumnsClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionClause.java
index 6adea949826..d25d3e255cc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionClause.java
@@ -65,6 +65,11 @@ public class AddPartitionClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
index 4ae585bc5dc..48d9e15238c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
@@ -51,6 +51,11 @@ public class AddPartitionLikeClause extends AlterTableClause
{
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddRollupClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddRollupClause.java
index a9df4fedc81..f14e0828367 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddRollupClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddRollupClause.java
@@ -94,6 +94,11 @@ public class AddRollupClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder stringBuilder = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterClause.java
index d81cfec05f9..0e573f8e675 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterClause.java
@@ -43,4 +43,8 @@ public abstract class AlterClause implements ParseNode {
public boolean allowOpMTMV() {
return true;
}
+
+ public boolean needChangeMTMVState() {
+ return false;
+ }
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableClause.java
index eed07491f7a..392f4e7b2e0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterTableClause.java
@@ -40,4 +40,6 @@ public abstract class AlterTableClause extends AlterClause {
}
public abstract boolean allowOpMTMV();
+
+ public abstract boolean needChangeMTMVState();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/BuildIndexClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/BuildIndexClause.java
index 806cb6492b6..cb7ec08de78 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BuildIndexClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BuildIndexClause.java
@@ -81,6 +81,11 @@ public class BuildIndexClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
if (alter) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnRenameClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnRenameClause.java
index 127be532454..c5fe45f4957 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnRenameClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnRenameClause.java
@@ -68,6 +68,11 @@ public class ColumnRenameClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return true;
+ }
+
@Override
public String toSql() {
return "RENAME COLUMN " + colName + " " + newColName;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
index 008735dac46..b39c0df4a85 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateIndexClause.java
@@ -81,6 +81,11 @@ public class CreateIndexClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
if (alter) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropColumnClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropColumnClause.java
index db1190d87d6..cbc2c12b1e2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropColumnClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropColumnClause.java
@@ -70,6 +70,11 @@ public class DropColumnClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return true;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
index bb85ca09886..f72136ee2b3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropIndexClause.java
@@ -73,6 +73,11 @@ public class DropIndexClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder stringBuilder = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionClause.java
index 4b3c70699c1..00c9d829e57 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionClause.java
@@ -76,6 +76,11 @@ public class DropPartitionClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionFromIndexClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionFromIndexClause.java
index fe0cc97b254..469f92abdd9 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionFromIndexClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPartitionFromIndexClause.java
@@ -82,6 +82,11 @@ public class DropPartitionFromIndexClause extends
AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRollupClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRollupClause.java
index 292dc6c9ada..fa730b00c5f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRollupClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRollupClause.java
@@ -53,6 +53,11 @@ public class DropRollupClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder stringBuilder = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/EnableFeatureClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/EnableFeatureClause.java
index d8b38457e49..8a4f76f43ef 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/EnableFeatureClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/EnableFeatureClause.java
@@ -89,6 +89,11 @@ public class EnableFeatureClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnClause.java
index c2aebb9e1de..eb136c540f2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnClause.java
@@ -101,6 +101,11 @@ public class ModifyColumnClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return true;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnCommentClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnCommentClause.java
index 8ae0ac33aca..836377bc9e0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnCommentClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyColumnCommentClause.java
@@ -64,6 +64,11 @@ public class ModifyColumnCommentClause extends
AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyDistributionClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyDistributionClause.java
index c1de80237c7..58e0871ce33 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyDistributionClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyDistributionClause.java
@@ -45,6 +45,11 @@ public class ModifyDistributionClause extends
AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyEngineClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyEngineClause.java
index 1c6c95d062f..d7e1dd60a63 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyEngineClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyEngineClause.java
@@ -69,6 +69,11 @@ public class ModifyEngineClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyPartitionClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyPartitionClause.java
index bf7c1619d41..d8cfa500ec5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyPartitionClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyPartitionClause.java
@@ -136,6 +136,11 @@ public class ModifyPartitionClause extends
AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTableCommentClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTableCommentClause.java
index 8741e2ffcad..fed20f5ba82 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTableCommentClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTableCommentClause.java
@@ -55,6 +55,11 @@ public class ModifyTableCommentClause extends
AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
index b4c519b2aee..b5e4c46d91a 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
@@ -336,6 +336,11 @@ public class ModifyTablePropertiesClause extends
AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionRenameClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionRenameClause.java
index fc6ad24948c..cf1739235ec 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionRenameClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionRenameClause.java
@@ -68,6 +68,11 @@ public class PartitionRenameClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
return "RENAME PARTITION " + partitionName + " " + newPartitionName;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ReorderColumnsClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ReorderColumnsClause.java
index 13cf5f0412d..e9b01fa4838 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ReorderColumnsClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ReorderColumnsClause.java
@@ -72,6 +72,11 @@ public class ReorderColumnsClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplacePartitionClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplacePartitionClause.java
index 3fece452e2f..9a827c82f81 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplacePartitionClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplacePartitionClause.java
@@ -112,6 +112,11 @@ public class ReplacePartitionClause extends
AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplaceTableClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplaceTableClause.java
index 464bbd70920..bcd5dd56ede 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplaceTableClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ReplaceTableClause.java
@@ -75,6 +75,11 @@ public class ReplaceTableClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return true;
+ }
+
@Override
public String toSql() {
StringBuilder sb = new StringBuilder();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RollupRenameClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RollupRenameClause.java
index 37544ba6edd..c815d7badb3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RollupRenameClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RollupRenameClause.java
@@ -68,6 +68,11 @@ public class RollupRenameClause extends AlterTableClause {
return true;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return false;
+ }
+
@Override
public String toSql() {
return "RENAME ROLLUP " + rollupName + " " + newRollupName;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRenameClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRenameClause.java
index d1551169d2b..2f9ec7fb76d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRenameClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRenameClause.java
@@ -58,6 +58,11 @@ public class TableRenameClause extends AlterTableClause {
return false;
}
+ @Override
+ public boolean needChangeMTMVState() {
+ return true;
+ }
+
@Override
public String toSql() {
return "RENAME " + newTableName;
diff --git a/regression-test/data/mtmv_p0/test_base_mtmv.out
b/regression-test/data/mtmv_p0/test_base_mtmv.out
index 306bda4dc37..6fb0d5f98c2 100644
--- a/regression-test/data/mtmv_p0/test_base_mtmv.out
+++ b/regression-test/data/mtmv_p0/test_base_mtmv.out
@@ -1,19 +1,46 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
--- !status --
+-- !init --
multi_mv_test_base_mtmv INIT INIT
--- !status --
+-- !success --
multi_mv_test_base_mtmv NORMAL SUCCESS
--- !status --
+-- !add_column --
+multi_mv_test_base_mtmv NORMAL SUCCESS
+
+-- !rename_column --
+multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS
+
+-- !success --
+multi_mv_test_base_mtmv NORMAL SUCCESS
+
+-- !modify_column --
+multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS
+
+-- !success --
+multi_mv_test_base_mtmv NORMAL SUCCESS
+
+-- !drop_column --
+multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS
+
+-- !success --
+multi_mv_test_base_mtmv NORMAL SUCCESS
+
+-- !replace_table --
+multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS
+
+-- !success --
+multi_mv_test_base_mtmv NORMAL SUCCESS
+
+-- !rename_table --
multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS
--- !status --
+-- !success --
multi_mv_test_base_mtmv NORMAL SUCCESS
--- !status --
+-- !drop_table --
multi_mv_test_base_mtmv SCHEMA_CHANGE SUCCESS
--- !status --
+-- !success --
multi_mv_test_base_mtmv NORMAL SUCCESS
diff --git a/regression-test/suites/mtmv_p0/test_base_mtmv.groovy
b/regression-test/suites/mtmv_p0/test_base_mtmv.groovy
index f9bcaf2819d..0015a0fa130 100644
--- a/regression-test/suites/mtmv_p0/test_base_mtmv.groovy
+++ b/regression-test/suites/mtmv_p0/test_base_mtmv.groovy
@@ -15,11 +15,13 @@
// specific language governing permissions and limitations
// under the License.
-suite("test_base_mtmv") {
+suite("test_base_mtmv","mtmv") {
def tableName = "t_test_base_mtmv_user"
+ def newTableName = "t_test_base_mtmv_user_new"
def mvName = "multi_mv_test_base_mtmv"
def dbName = "regression_test_mtmv_p0"
sql """drop table if exists `${tableName}`"""
+ sql """drop table if exists `${newTableName}`"""
sql """
CREATE TABLE IF NOT EXISTS `${tableName}` (
@@ -32,48 +34,108 @@ suite("test_base_mtmv") {
"replication_num" = "1"
);
"""
+ sql """
+ CREATE TABLE IF NOT EXISTS `${newTableName}` (
+ event_day DATE,
+ id BIGINT,
+ username VARCHAR(20)
+ )
+ DISTRIBUTED BY HASH(id) BUCKETS 10
+ PROPERTIES (
+ "replication_num" = "1"
+ );
+ """
sql """
INSERT INTO ${tableName}
VALUES("2022-10-26",1,"clz"),("2022-10-28",2,"zhangsang"),("2022-10-29",3,"lisi");
"""
sql """drop materialized view if exists ${mvName};"""
- // IMMEDIATE MANUAL
sql """
CREATE MATERIALIZED VIEW ${mvName}
BUILD DEFERRED REFRESH COMPLETE ON MANUAL
DISTRIBUTED BY RANDOM BUCKETS 2
PROPERTIES ('replication_num' = '1')
AS
- SELECT * FROM ${tableName};
+ SELECT event_day,id,username FROM ${tableName};
"""
def jobName = getJobName("regression_test_mtmv_p0", mvName);
- order_qt_status "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ order_qt_init "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
sql """
REFRESH MATERIALIZED VIEW ${mvName} AUTO
"""
waitingMTMVTaskFinished(jobName)
- order_qt_status "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
- // alter table
+ // add column
sql """
alter table ${tableName} add COLUMN new_col INT AFTER username;
"""
- order_qt_status "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ order_qt_add_column "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+
+ // rename column
sql """
- alter table ${tableName} drop COLUMN new_col;
+ alter table ${tableName} rename COLUMN new_col new_col_1;
"""
+ order_qt_rename_column "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
sql """
REFRESH MATERIALIZED VIEW ${mvName} AUTO
"""
waitingMTMVTaskFinished(jobName)
- order_qt_status "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+
+ // modify column
+ sql """
+ alter table ${tableName} modify COLUMN new_col_1 BIGINT;
+ """
+ order_qt_modify_column "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ sql """
+ REFRESH MATERIALIZED VIEW ${mvName} AUTO
+ """
+ waitingMTMVTaskFinished(jobName)
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+
+ // drop column
+ sql """
+ alter table ${tableName} drop COLUMN new_col_1;
+ """
+ order_qt_drop_column "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ sql """
+ REFRESH MATERIALIZED VIEW ${mvName} AUTO
+ """
+ waitingMTMVTaskFinished(jobName)
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+
+ // replace table
+ sql """
+ ALTER TABLE ${tableName} REPLACE WITH TABLE ${newTableName}
PROPERTIES('swap' = 'false');
+ """
+ order_qt_replace_table "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ sql """
+ REFRESH MATERIALIZED VIEW ${mvName} AUTO
+ """
+ waitingMTMVTaskFinished(jobName)
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+
+ // rename table
+ sql """
+ ALTER TABLE ${tableName} rename ${newTableName};
+ """
+ order_qt_rename_table "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ sql """
+ ALTER TABLE ${newTableName} rename ${tableName};
+ """
+ sql """
+ REFRESH MATERIALIZED VIEW ${mvName} AUTO
+ """
+ waitingMTMVTaskFinished(jobName)
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
// drop table
sql """
drop table ${tableName}
"""
- order_qt_status "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+ order_qt_drop_table "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
sql """
CREATE TABLE IF NOT EXISTS `${tableName}` (
event_day DATE,
@@ -89,8 +151,9 @@ suite("test_base_mtmv") {
REFRESH MATERIALIZED VIEW ${mvName} AUTO
"""
waitingMTMVTaskFinished(jobName)
- order_qt_status "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
- sql """
- DROP MATERIALIZED VIEW ${mvName}
- """
+ order_qt_success "select Name,State,RefreshState from
mv_infos('database'='${dbName}') where Name='${mvName}'"
+
+ sql """drop table if exists `${tableName}`"""
+ sql """drop table if exists `${newTableName}`"""
+ sql """ DROP MATERIALIZED VIEW ${mvName}"""
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]