This is an automated email from the ASF dual-hosted git repository.
chaow 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 cb24696 Remove unexpected exception thrown when all CreateTimeseries
opeartions are successful for CreateMultiTimeseries (#2718)
cb24696 is described below
commit cb24696e14b5d287a3af00949e956ae183820dff
Author: Potato <[email protected]>
AuthorDate: Tue Feb 23 12:05:03 2021 +0800
Remove unexpected exception thrown when all CreateTimeseries opeartions are
successful for CreateMultiTimeseries (#2718)
---
.../java/org/apache/iotdb/db/qp/executor/PlanExecutor.java | 5 +----
.../db/qp/physical/sys/CreateMultiTimeSeriesPlan.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 05cfe83..299bcbb 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -115,8 +115,6 @@ import org.apache.iotdb.db.utils.AuthUtils;
import org.apache.iotdb.db.utils.FileLoaderUtils;
import org.apache.iotdb.db.utils.UpgradeUtils;
import org.apache.iotdb.rpc.RpcUtils;
-import org.apache.iotdb.rpc.TSStatusCode;
-import org.apache.iotdb.service.rpc.thrift.TSStatus;
import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
import
org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException;
import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetadata;
@@ -1255,13 +1253,12 @@ public class PlanExecutor implements IPlanExecutor {
multiPlan.getAlias() == null ? null :
multiPlan.getAlias().get(i));
try {
createTimeSeries(plan);
- multiPlan.getResults().put(i,
RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
} catch (QueryProcessException e) {
multiPlan.getResults().put(i, RpcUtils.getStatus(e.getErrorCode(),
e.getMessage()));
}
}
if (!multiPlan.getResults().isEmpty()) {
- throw new
BatchProcessException(multiPlan.getResults().values().toArray(new TSStatus[0]));
+ throw new BatchProcessException(multiPlan.getFailingStatus());
}
return true;
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateMultiTimeSeriesPlan.java
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateMultiTimeSeriesPlan.java
index 90d281b..f3f354d 100644
---
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateMultiTimeSeriesPlan.java
+++
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateMultiTimeSeriesPlan.java
@@ -22,6 +22,7 @@ import
org.apache.iotdb.db.exception.metadata.IllegalPathException;
import org.apache.iotdb.db.metadata.PartialPath;
import org.apache.iotdb.db.qp.logical.Operator;
import org.apache.iotdb.db.qp.physical.PhysicalPlan;
+import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.service.rpc.thrift.TSStatus;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -32,6 +33,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -138,6 +140,18 @@ public class CreateMultiTimeSeriesPlan extends
PhysicalPlan {
return results;
}
+ public TSStatus[] getFailingStatus() {
+ if (results.isEmpty()) {
+ return new TSStatus[0];
+ }
+ TSStatus[] failingStatus = new TSStatus[paths.size()];
+ Arrays.fill(failingStatus, RpcUtils.SUCCESS_STATUS);
+ for (Map.Entry<Integer, TSStatus> status : results.entrySet()) {
+ failingStatus[status.getKey()] = status.getValue();
+ }
+ return failingStatus;
+ }
+
public void setResults(Map<Integer, TSStatus> results) {
this.results = results;
}