This is an automated email from the ASF dual-hosted git repository.
zyk pushed a commit to branch rel/1.2
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.2 by this push:
new e5782970860 [To rel/1.2][IOTDB-5937] Fix wrong measurement check when
using view to import csv (#10275)
e5782970860 is described below
commit e578297086063059cb682dc0c1c81df32a9b2bcb
Author: Marcos_Zyk <[email protected]>
AuthorDate: Fri Jun 23 17:42:33 2023 +0800
[To rel/1.2][IOTDB-5937] Fix wrong measurement check when using view to
import csv (#10275)
---
.../crud/InsertMultiTabletsStatement.java | 32 ----------------------
.../crud/InsertRowsOfOneDeviceStatement.java | 1 -
.../plan/statement/crud/InsertRowsStatement.java | 32 ----------------------
3 files changed, 65 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertMultiTabletsStatement.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertMultiTabletsStatement.java
index d7c7cebad25..a43bfc7afef 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertMultiTabletsStatement.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertMultiTabletsStatement.java
@@ -20,8 +20,6 @@
package org.apache.iotdb.db.mpp.plan.statement.crud;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.exception.metadata.DuplicateInsertException;
-import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.mpp.plan.analyze.schema.ISchemaValidation;
import org.apache.iotdb.db.mpp.plan.statement.StatementType;
import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
@@ -29,11 +27,7 @@ import
org.apache.iotdb.tsfile.exception.NotImplementedException;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
import java.util.stream.Collectors;
public class InsertMultiTabletsStatement extends InsertBaseStatement {
@@ -144,34 +138,8 @@ public class InsertMultiTabletsStatement extends
InsertBaseStatement {
if (!needSplit) {
return this;
}
- validateInsertTabletList(mergedList);
InsertMultiTabletsStatement splitResult = new
InsertMultiTabletsStatement();
splitResult.setInsertTabletStatementList(mergedList);
return splitResult;
}
-
- /**
- * Check given InsertRowStatement list, make sure no duplicate time series
in those statements. If
- * there are duplicate measurements, throw DuplicateInsertException.
- */
- public static void validateInsertTabletList(List<InsertTabletStatement>
insertTabletList) {
- if (insertTabletList == null) {
- return;
- }
- Map<String, Set<String>> mapFromDeviceToMeasurements = new HashMap<>();
- for (InsertTabletStatement insertTablet : insertTabletList) {
- String device = insertTablet.devicePath.getFullPath();
- Set<String> measurementSet = mapFromDeviceToMeasurements.get(device);
- if (measurementSet == null) {
- measurementSet = new HashSet<>();
- }
- for (String measurement : insertTablet.measurements) {
- boolean notExist = measurementSet.add(measurement);
- if (!notExist) {
- throw new SemanticException(new DuplicateInsertException(device,
measurement));
- }
- }
- mapFromDeviceToMeasurements.put(device, measurementSet);
- }
- }
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsOfOneDeviceStatement.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsOfOneDeviceStatement.java
index 4fc20487422..a65c68eb331 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsOfOneDeviceStatement.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsOfOneDeviceStatement.java
@@ -151,7 +151,6 @@ public class InsertRowsOfOneDeviceStatement extends
InsertBaseStatement {
List<InsertRowStatement> childSplitResult = child.getSplitList();
mergedList.addAll(childSplitResult);
}
- InsertRowsStatement.validateInsertRowList(mergedList);
InsertRowsStatement splitResult = new InsertRowsStatement();
splitResult.setInsertRowStatementList(mergedList);
return splitResult;
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsStatement.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsStatement.java
index 50d31b2c43a..8528c64c307 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsStatement.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/InsertRowsStatement.java
@@ -20,9 +20,7 @@
package org.apache.iotdb.db.mpp.plan.statement.crud;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.exception.metadata.DuplicateInsertException;
import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.mpp.plan.analyze.schema.ISchemaValidation;
import org.apache.iotdb.db.mpp.plan.statement.StatementType;
import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
@@ -30,11 +28,7 @@ import
org.apache.iotdb.tsfile.exception.NotImplementedException;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
import java.util.stream.Collectors;
public class InsertRowsStatement extends InsertBaseStatement {
@@ -155,34 +149,8 @@ public class InsertRowsStatement extends
InsertBaseStatement {
if (!needSplit) {
return this;
}
- validateInsertRowList(mergedList);
InsertRowsStatement splitResult = new InsertRowsStatement();
splitResult.setInsertRowStatementList(mergedList);
return splitResult;
}
-
- /**
- * Check given InsertRowStatement list, make sure no duplicate time series
in those statements. If
- * there are duplicate measurements, throw DuplicateInsertException.
- */
- public static void validateInsertRowList(List<InsertRowStatement>
insertRowList) {
- if (insertRowList == null) {
- return;
- }
- Map<String, Set<String>> mapFromDeviceToMeasurements = new HashMap<>();
- for (InsertRowStatement insertRow : insertRowList) {
- String device = insertRow.devicePath.getFullPath();
- Set<String> measurementSet = mapFromDeviceToMeasurements.get(device);
- if (measurementSet == null) {
- measurementSet = new HashSet<>();
- }
- for (String measurement : insertRow.measurements) {
- boolean notExist = measurementSet.add(measurement);
- if (!notExist) {
- throw new SemanticException(new DuplicateInsertException(device,
measurement));
- }
- }
- mapFromDeviceToMeasurements.put(device, measurementSet);
- }
- }
}