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

rong 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 7a2a0b4bb2c Fixed the NPE of failed internal create timeseries (#13253)
7a2a0b4bb2c is described below

commit 7a2a0b4bb2c6b7bcf2fff3e26a872035f6d3172a
Author: Caideyipi <[email protected]>
AuthorDate: Mon Aug 26 10:30:00 2024 +0800

    Fixed the NPE of failed internal create timeseries (#13253)
---
 .../analyze/schema/AutoCreateSchemaExecutor.java     | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java
index 62cba986aab..197e96016c5 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java
@@ -500,8 +500,8 @@ class AutoCreateSchemaExecutor {
 
   // Auto create timeseries and return the existing timeseries info
   private List<MeasurementPath> executeInternalCreateTimeseriesStatement(
-      Statement statement, MPPQueryContext context) {
-    TSStatus status =
+      final Statement statement, final MPPQueryContext context) {
+    final TSStatus status =
         AuthorityChecker.checkAuthority(statement, 
context.getSession().getUserName());
     if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
       throw new RuntimeException(new IoTDBException(status.getMessage(), 
status.getCode()));
@@ -509,7 +509,7 @@ class AutoCreateSchemaExecutor {
 
     ExecutionResult executionResult = executeStatement(statement, context);
 
-    int statusCode = executionResult.status.getCode();
+    final int statusCode = executionResult.status.getCode();
     if (statusCode == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
       return Collections.emptyList();
     }
@@ -519,19 +519,23 @@ class AutoCreateSchemaExecutor {
           new IoTDBException(executionResult.status.getMessage(), statusCode));
     }
 
-    Set<String> failedCreationSet = new HashSet<>();
-    List<MeasurementPath> alreadyExistingMeasurements = new ArrayList<>();
-    for (TSStatus subStatus : executionResult.status.subStatus) {
+    final Set<TSStatus> failedCreationSet = new HashSet<>();
+    final List<MeasurementPath> alreadyExistingMeasurements = new 
ArrayList<>();
+    for (final TSStatus subStatus : executionResult.status.subStatus) {
       if (subStatus.code == 
TSStatusCode.TIMESERIES_ALREADY_EXIST.getStatusCode()) {
         alreadyExistingMeasurements.add(
             MeasurementPath.parseDataFromString(subStatus.getMessage()));
       } else {
-        failedCreationSet.add(subStatus.message);
+        failedCreationSet.add(subStatus);
       }
     }
 
     if (!failedCreationSet.isEmpty()) {
-      throw new SemanticException(new MetadataException(String.join("; ", 
failedCreationSet)));
+      throw new SemanticException(
+          new MetadataException(
+              failedCreationSet.stream()
+                  .map(TSStatus::toString)
+                  .collect(Collectors.joining("; "))));
     }
 
     return alreadyExistingMeasurements;

Reply via email to