This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new de10ea78911 [AINode] Optimize the error information when dropping 
built-in model (#14943)
de10ea78911 is described below

commit de10ea7891100a58d16a504785f21e3fecdf3555
Author: YangCaiyin <[email protected]>
AuthorDate: Wed Feb 26 15:04:58 2025 +0800

    [AINode] Optimize the error information when dropping built-in model 
(#14943)
---
 .../src/test/java/org/apache/iotdb/ainode/it/AINodeBasicIT.java      | 2 ++
 .../main/java/org/apache/iotdb/confignode/manager/ModelManager.java  | 5 +++++
 .../main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java | 2 +-
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeBasicIT.java 
b/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeBasicIT.java
index 265fbf4e301..3b54b5c4409 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeBasicIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeBasicIT.java
@@ -247,5 +247,7 @@ public class AINodeBasicIT {
         "301: The number of rows 5 in the input data does not match the model 
input 7. Try to use LIMIT in SQL or WINDOW in CALL INFERENCE");
     sql = "CREATE MODEL 中文 USING URI \"" + MODEL_PATH + "\"";
     errorTest(sql, "701: ModelName can only contain letters, numbers, and 
underscores");
+    sql = "DROP MODEL _GaussianHMM";
+    errorTest(sql, "1502: Built-in model _GaussianHMM can't be removed");
   }
 }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ModelManager.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ModelManager.java
index 6121b30a886..3c19dfdb14a 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ModelManager.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ModelManager.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.confignode.manager;
 
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.commons.model.ModelType;
 import 
org.apache.iotdb.confignode.consensus.request.read.model.GetModelInfoPlan;
 import org.apache.iotdb.confignode.consensus.request.read.model.ShowModelPlan;
 import org.apache.iotdb.confignode.consensus.response.model.GetModelInfoResp;
@@ -63,6 +64,10 @@ public class ModelManager {
   }
 
   public TSStatus dropModel(TDropModelReq req) {
+    if (modelInfo.checkModelType(req.getModelId()) != ModelType.USER_DEFINED) {
+      return new TSStatus(TSStatusCode.MODEL_EXIST_ERROR.getStatusCode())
+          .setMessage(String.format("Built-in model %s can't be removed", 
req.modelId));
+    }
     if (!modelInfo.contain(req.modelId)) {
       return new TSStatus(TSStatusCode.MODEL_EXIST_ERROR.getStatusCode())
           .setMessage(String.format("Model name %s doesn't exists", 
req.modelId));
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
index d3407e5c5de..21b317d9854 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
@@ -233,7 +233,7 @@ public class ModelInfo implements SnapshotProcessor {
     return false;
   }
 
-  private ModelType checkModelType(String modelName) {
+  public ModelType checkModelType(String modelName) {
     if (containsBuiltInModelName(builtInForecastModel, modelName)) {
       return ModelType.BUILT_IN_FORECAST;
     } else if (containsBuiltInModelName(builtInAnomalyDetectionModel, 
modelName)) {

Reply via email to