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

haonan 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 b31ed747b6 [IOTDB-4490] Msg does not match CLI when creating invalid 
storage group (#7541)
b31ed747b6 is described below

commit b31ed747b6375308cf0356439574dc80c38b6091
Author: CloudWise-Lukemiao 
<[email protected]>
AuthorDate: Sat Oct 8 14:55:58 2022 +0800

    [IOTDB-4490] Msg does not match CLI when creating invalid storage group 
(#7541)
---
 .../iotdb/db/protocol/mpprest/handler/ExceptionHandler.java | 13 ++++++++++++-
 .../iotdb/db/protocol/mpprest/impl/RestApiServiceImpl.java  | 12 ++++++------
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/ExceptionHandler.java
 
b/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/ExceptionHandler.java
index 40e749d0d1..f1c27ddb13 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/ExceptionHandler.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/handler/ExceptionHandler.java
@@ -24,9 +24,12 @@ import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.exception.sql.SQLParserException;
+import org.apache.iotdb.db.exception.sql.StatementAnalyzeException;
 import org.apache.iotdb.db.protocol.mpprest.model.ExecutionStatus;
 import org.apache.iotdb.rpc.TSStatusCode;
 
+import org.antlr.v4.runtime.misc.ParseCancellationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -62,7 +65,15 @@ public class ExceptionHandler {
     } else if (e instanceof IoTDBException) {
       responseResult.setMessage(e.getMessage());
       responseResult.setCode(((IoTDBException) e).getErrorCode());
-    } else if (!(e instanceof IOException) && !(e instanceof 
NullPointerException)) {
+    } else if (e instanceof ParseCancellationException) {
+      responseResult.setMessage(e.getMessage());
+      responseResult.setCode(TSStatusCode.SQL_PARSE_ERROR.getStatusCode());
+    } else if (e instanceof SQLParserException) {
+      responseResult.setMessage(e.getMessage());
+      responseResult.setCode(TSStatusCode.METADATA_ERROR.getStatusCode());
+    } else if (!(e instanceof IOException)
+        && !(e instanceof NullPointerException)
+        && !(e instanceof StatementAnalyzeException)) {
       responseResult.setMessage(e.getMessage());
       
responseResult.setCode(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode());
     } else {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/impl/RestApiServiceImpl.java
 
b/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/impl/RestApiServiceImpl.java
index f53624e332..f8c2643d16 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/impl/RestApiServiceImpl.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/protocol/mpprest/impl/RestApiServiceImpl.java
@@ -106,8 +106,8 @@ public class RestApiServiceImpl extends RestApiService {
                       .code(TSStatusCode.SUCCESS_STATUS.getStatusCode())
                       .message(TSStatusCode.SUCCESS_STATUS.name())
                   : new ExecutionStatus()
-                      
.code(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode())
-                      .message(TSStatusCode.EXECUTE_STATEMENT_ERROR.name()))
+                      .code(result.status.getCode())
+                      .message(result.status.getMessage()))
           .build();
     } catch (Exception e) {
       return 
Response.ok().entity(ExceptionHandler.tryCatchException(e)).build();
@@ -141,8 +141,8 @@ public class RestApiServiceImpl extends RestApiService {
         return Response.ok()
             .entity(
                 new ExecutionStatus()
-                    .code(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode())
-                    .message(TSStatusCode.EXECUTE_STATEMENT_ERROR.name()))
+                    .code(result.status.getCode())
+                    .message(result.status.getMessage()))
             .build();
       }
       IQueryExecution queryExecution = COORDINATOR.getQueryExecution(queryId);
@@ -190,8 +190,8 @@ public class RestApiServiceImpl extends RestApiService {
                       .code(TSStatusCode.SUCCESS_STATUS.getStatusCode())
                       .message(TSStatusCode.SUCCESS_STATUS.name())
                   : new ExecutionStatus()
-                      
.code(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode())
-                      .message(TSStatusCode.EXECUTE_STATEMENT_ERROR.name()))
+                      .code(result.status.getCode())
+                      .message(result.status.getMessage()))
           .build();
     } catch (Exception e) {
       return 
Response.ok().entity(ExceptionHandler.tryCatchException(e)).build();

Reply via email to