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;