[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:
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -43,4 +43,8 @@ public abstract class AlterClause implements ParseNode {
|
||||
public boolean allowOpMTMV() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean needChangeMTMVState() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,4 +40,6 @@ public abstract class AlterTableClause extends AlterClause {
|
||||
}
|
||||
|
||||
public abstract boolean allowOpMTMV();
|
||||
|
||||
public abstract boolean needChangeMTMVState();
|
||||
}
|
||||
|
||||
@ -81,6 +81,11 @@ public class BuildIndexClause extends AlterTableClause {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needChangeMTMVState() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toSql() {
|
||||
if (alter) {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -81,6 +81,11 @@ public class CreateIndexClause extends AlterTableClause {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needChangeMTMVState() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toSql() {
|
||||
if (alter) {
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -58,6 +58,11 @@ public class TableRenameClause extends AlterTableClause {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needChangeMTMVState() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toSql() {
|
||||
return "RENAME " + newTableName;
|
||||
|
||||
Reference in New Issue
Block a user