[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
This commit is contained in:
zhangdong
2024-07-03 10:42:03 +08:00
committed by GitHub
parent 03942f23f6
commit 6804ae5827
32 changed files with 263 additions and 24 deletions

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -43,4 +43,8 @@ public abstract class AlterClause implements ParseNode {
public boolean allowOpMTMV() {
return true;
}
public boolean needChangeMTMVState() {
return false;
}
}

View File

@ -40,4 +40,6 @@ public abstract class AlterTableClause extends AlterClause {
}
public abstract boolean allowOpMTMV();
public abstract boolean needChangeMTMVState();
}

View File

@ -81,6 +81,11 @@ public class BuildIndexClause extends AlterTableClause {
return true;
}
@Override
public boolean needChangeMTMVState() {
return false;
}
@Override
public String toSql() {
if (alter) {

View File

@ -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;

View File

@ -81,6 +81,11 @@ public class CreateIndexClause extends AlterTableClause {
return true;
}
@Override
public boolean needChangeMTMVState() {
return false;
}
@Override
public String toSql() {
if (alter) {

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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;

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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;

View File

@ -58,6 +58,11 @@ public class TableRenameClause extends AlterTableClause {
return false;
}
@Override
public boolean needChangeMTMVState() {
return true;
}
@Override
public String toSql() {
return "RENAME " + newTableName;