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)) {