diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommand.java index 1f2896b1fa2426..594696442a28b1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommand.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommand.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.Env; import org.apache.doris.common.AnalysisException; +import org.apache.doris.common.DdlException; import org.apache.doris.common.ErrorCode; import org.apache.doris.common.ErrorReport; import org.apache.doris.mysql.privilege.PrivPredicate; @@ -132,6 +133,11 @@ private void checkProperties() throws AnalysisException { } } + @Override + protected void checkSupportedInCloudMode(ConnectContext ctx) throws DdlException { + throw new DdlException("Unsupported operation"); + } + @Override public R accept(PlanVisitor visitor, C context) { return visitor.visitAdminSetReplicaVersionCommand(this, context); diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommandTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommandTest.java index 182a8e046aa9f6..0aba1b81412ab3 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommandTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/AdminSetReplicaVersionCommandTest.java @@ -24,6 +24,8 @@ import org.apache.doris.catalog.Partition; import org.apache.doris.catalog.Replica; import org.apache.doris.catalog.Tablet; +import org.apache.doris.common.Config; +import org.apache.doris.common.DdlException; import org.apache.doris.common.Pair; import org.apache.doris.nereids.parser.NereidsParser; import org.apache.doris.nereids.trees.plans.logical.LogicalPlan; @@ -33,7 +35,9 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class AdminSetReplicaVersionCommandTest extends TestWithFeService { @Override @@ -139,4 +143,27 @@ public void testAdminSetReplicaVersion() throws Exception { Assertions.assertDoesNotThrow(() -> ((AdminSetReplicaVersionCommand) plan4).run(connectContext, null)); Assertions.assertEquals(-1L, replica.getLastFailedVersion()); } + + @Test + public void testUnsupportedInCloudMode() { + String originDeployMode = Config.deploy_mode; + String originCloudUniqueId = Config.cloud_unique_id; + try { + Config.deploy_mode = "cloud"; + Config.cloud_unique_id = ""; + + Map properties = new HashMap<>(); + properties.put("tablet_id", "1"); + properties.put("backend_id", "2"); + properties.put("version", "3"); + AdminSetReplicaVersionCommand command = new AdminSetReplicaVersionCommand(properties); + + DdlException ex = Assertions.assertThrows(DdlException.class, + () -> command.verifyCommandSupported(connectContext)); + Assertions.assertTrue(ex.getMessage().contains("Unsupported operation")); + } finally { + Config.deploy_mode = originDeployMode; + Config.cloud_unique_id = originCloudUniqueId; + } + } }