This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 72445f727ef branch-3.0: [enhance](mtmv)insert overwrite of mtmv force
drop partition #48074 (#48627)
72445f727ef is described below
commit 72445f727ef782b9ed213744842388584011a2fd
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Mar 10 20:52:33 2025 +0800
branch-3.0: [enhance](mtmv)insert overwrite of mtmv force drop partition
#48074 (#48627)
Cherry-picked from #48074
Co-authored-by: zhangdong <[email protected]>
---
.../java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java | 7 ++++++-
.../nereids/trees/plans/commands/UpdateMvByPartitionCommand.java | 7 +++++++
.../trees/plans/commands/insert/InsertOverwriteTableCommand.java | 7 ++++++-
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
b/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
index c2842569ca5..49e3e091d57 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
@@ -69,6 +69,11 @@ public class InsertOverwriteUtil {
*/
public static void replacePartition(TableIf olapTable, List<String>
partitionNames,
List<String> tempPartitionNames) throws DdlException {
+ replacePartition(olapTable, partitionNames, tempPartitionNames, false);
+ }
+
+ public static void replacePartition(TableIf olapTable, List<String>
partitionNames,
+ List<String> tempPartitionNames, boolean isForce) throws
DdlException {
if (olapTable instanceof OlapTable) {
try {
if (!olapTable.writeLockIfExist()) {
@@ -78,7 +83,7 @@ public class InsertOverwriteUtil {
properties.put(PropertyAnalyzer.PROPERTIES_USE_TEMP_PARTITION_NAME, "false");
ReplacePartitionClause replacePartitionClause = new
ReplacePartitionClause(
new PartitionNames(false, partitionNames),
- new PartitionNames(true, tempPartitionNames), false,
properties);
+ new PartitionNames(true, tempPartitionNames), isForce,
properties);
if (replacePartitionClause.getTempPartitionNames().isEmpty()) {
return;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateMvByPartitionCommand.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateMvByPartitionCommand.java
index b0a95ffdd3a..d35eafffa2c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateMvByPartitionCommand.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateMvByPartitionCommand.java
@@ -89,6 +89,13 @@ public class UpdateMvByPartitionCommand extends
InsertOverwriteTableCommand {
super(logicalQuery, Optional.empty(), Optional.empty());
}
+ @Override
+ public boolean isForceDropPartition() {
+ // After refreshing the data in MTMV, it will be synchronized with the
base table
+ // and there is no need to put it in the recycle bin
+ return true;
+ }
+
/**
* Construct command
*
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertOverwriteTableCommand.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertOverwriteTableCommand.java
index c89a4fc7be9..c4db84f378b 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertOverwriteTableCommand.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertOverwriteTableCommand.java
@@ -210,7 +210,8 @@ public class InsertOverwriteTableCommand extends Command
implements ForwardWithS
insertOverwriteManager.taskFail(taskId);
return;
}
- InsertOverwriteUtil.replacePartition(targetTable,
partitionNames, tempPartitionNames);
+ InsertOverwriteUtil.replacePartition(targetTable,
partitionNames, tempPartitionNames,
+ isForceDropPartition());
if (isCancelled.get()) {
LOG.info("insert overwrite is cancelled before
taskSuccess, do nothing, queryId: {}",
ctx.getQueryIdentifier());
@@ -365,6 +366,10 @@ public class InsertOverwriteTableCommand extends Command
implements ForwardWithS
return InsertUtils.getPlanForExplain(ctx, this.logicalQuery);
}
+ public boolean isForceDropPartition() {
+ return false;
+ }
+
@Override
public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
return visitor.visitInsertOverwriteTableCommand(this, context);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]