This is an automated email from the ASF dual-hosted git repository. yuyuankang pushed a commit to branch kyy in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 92b36c34e1811d16eb213de101300474c5859dab Author: Ring-k <[email protected]> AuthorDate: Sun Nov 1 15:51:48 2020 +0800 check reasons when insert tablets --- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 66 ++++++++++++---------- 1 file changed, 36 insertions(+), 30 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 606ad35..d78f9a6 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 @@ -324,7 +324,8 @@ public class PlanExecutor implements IPlanExecutor { } } - public static void flushSpecifiedStorageGroups(FlushPlan plan) throws StorageGroupNotSetException { + public static void flushSpecifiedStorageGroups(FlushPlan plan) + throws StorageGroupNotSetException { Map<PartialPath, List<Pair<Long, Boolean>>> storageGroupMap = plan .getStorageGroupPartitionIds(); for (Entry<PartialPath, List<Pair<Long, Boolean>>> entry : storageGroupMap.entrySet()) { @@ -734,7 +735,8 @@ public class PlanExecutor implements IPlanExecutor { @Override public void delete(DeletePlan deletePlan) throws QueryProcessException { for (PartialPath path : deletePlan.getPaths()) { - delete(path, deletePlan.getDeleteStartTime(), deletePlan.getDeleteEndTime(), deletePlan.getIndex()); + delete(path, deletePlan.getDeleteStartTime(), deletePlan.getDeleteEndTime(), + deletePlan.getIndex()); } } @@ -900,7 +902,8 @@ public class PlanExecutor implements IPlanExecutor { } @Override - public void delete(PartialPath path, long startTime, long endTime, long planIndex) throws QueryProcessException { + public void delete(PartialPath path, long startTime, long endTime, long planIndex) + throws QueryProcessException { try { if (!IoTDB.metaManager.isPathExist(path)) { throw new QueryProcessException( @@ -933,28 +936,8 @@ public class PlanExecutor implements IPlanExecutor { } StorageEngine.getInstance().insert(insertRowPlan); - if (insertRowPlan.getFailedMeasurements() != null) { - // check if all path not exist exceptions - List<String> failedPaths = insertRowPlan.getFailedMeasurements(); - List<Exception> exceptions = insertRowPlan.getFailedExceptions(); - boolean isPathNotExistException = true; - for (Exception e : exceptions) { - Throwable curException = e; - while (curException.getCause() != null) { - curException = curException.getCause(); - } - if (!(curException instanceof PathNotExistException)) { - isPathNotExistException = false; - break; - } - } - if (isPathNotExistException) { - throw new PathNotExistException(failedPaths); - } else { - throw new StorageEngineException( - INSERT_MEASUREMENTS_FAILED_MESSAGE + insertRowPlan.getFailedMeasurements()); - } - } + checkFailedReasons(insertRowPlan.getFailedMeasurements(), + insertRowPlan.getFailedExceptions()); } catch (StorageEngineException | MetadataException e) { throw new QueryProcessException(e); } @@ -967,15 +950,37 @@ public class PlanExecutor implements IPlanExecutor { .setMeasurementMNodes(new MeasurementMNode[insertTabletPlan.getMeasurements().length]); getSeriesSchemas(insertTabletPlan); StorageEngine.getInstance().insertTablet(insertTabletPlan); - if (insertTabletPlan.getFailedMeasurements() != null) { - throw new StorageEngineException( - INSERT_MEASUREMENTS_FAILED_MESSAGE + insertTabletPlan.getFailedMeasurements()); - } + checkFailedReasons(insertTabletPlan.getFailedMeasurements(), + insertTabletPlan.getFailedExceptions()); } catch (StorageEngineException | MetadataException e) { throw new QueryProcessException(e); } } + private void checkFailedReasons(List<String> failedMeasurements, List<Exception> failedExceptions) + throws PathNotExistException, StorageEngineException { + if (failedMeasurements != null) { + // check if all path not exist exceptions + boolean isPathNotExistException = true; + for (Exception e : failedExceptions) { + Throwable curException = e; + while (curException.getCause() != null) { + curException = curException.getCause(); + } + if (!(curException instanceof PathNotExistException)) { + isPathNotExistException = false; + break; + } + } + if (isPathNotExistException) { + throw new PathNotExistException(failedMeasurements); + } else { + throw new StorageEngineException( + INSERT_MEASUREMENTS_FAILED_MESSAGE + failedMeasurements); + } + } + } + private boolean operateAuthor(AuthorPlan author) throws QueryProcessException { AuthorOperator.AuthorType authorType = author.getAuthorType(); String userName = author.getUserName(); @@ -1058,7 +1063,8 @@ public class PlanExecutor implements IPlanExecutor { return true; } - private boolean createMultiTimeSeries(CreateMultiTimeSeriesPlan createMultiTimeSeriesPlan) throws QueryProcessException { + private boolean createMultiTimeSeries(CreateMultiTimeSeriesPlan createMultiTimeSeriesPlan) + throws QueryProcessException { TSStatus[] results = null; boolean hasFailed = false; for (int i = 0; i < createMultiTimeSeriesPlan.getPaths().size(); i++) {
