This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch rc/1.3.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rc/1.3.3 by this push:
new f431d2b9a5f Fixed the NPE of failed internal create timeseries (#13294)
f431d2b9a5f is described below
commit f431d2b9a5fbf085f5933135bcdc72146aa84956
Author: Caideyipi <[email protected]>
AuthorDate: Mon Aug 26 11:50:15 2024 +0800
Fixed the NPE of failed internal create timeseries (#13294)
---
.../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 3d2cae267fc..608b78db0e5 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;