This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new 0eefb7f1615 [To dev/1.3] Fix null measurement name issue in
insertTablet (#14800)
0eefb7f1615 is described below
commit 0eefb7f16157adad945cc63bf480021c74db68e7
Author: Haonan <[email protected]>
AuthorDate: Sat Feb 8 09:23:48 2025 +0800
[To dev/1.3] Fix null measurement name issue in insertTablet (#14800)
* Fix null measurement name issue in insertTablet (#14795)
* Fix null measurement name in Tablet
* Fix null measurement name in Tablet
* fix IT
---
.../iotdb/session/it/IoTDBSessionInsertNullIT.java | 42 ++++++++++++++++++++++
.../java/org/apache/iotdb/session/Session.java | 6 ++++
2 files changed, 48 insertions(+)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertNullIT.java
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertNullIT.java
index f101a833fbb..503b61f2d7c 100644
---
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertNullIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertNullIT.java
@@ -32,7 +32,10 @@ import org.apache.tsfile.file.metadata.enums.CompressionType;
import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.read.common.Field;
import org.apache.tsfile.read.common.RowRecord;
+import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.MeasurementSchema;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -355,4 +358,43 @@ public class IoTDBSessionInsertNullIT {
fail(e.getMessage());
}
}
+
+ @Test
+ public void insertTabletNullMeasurementTest() {
+ try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
+ String deviceId = "root.sg1.clsu.aligned_d1";
+ Tablet tablet =
+ new Tablet(
+ deviceId,
+ Arrays.asList(
+ new MeasurementSchema("s1", TSDataType.BOOLEAN),
+ new MeasurementSchema(null, TSDataType.INT32)),
+ 1);
+ tablet.addTimestamp(0, 300);
+ tablet.addValue("s1", 0, true);
+ tablet.addValue(null, 0, 1);
+ session.insertAlignedTablet(tablet);
+ fail();
+ } catch (Exception e) {
+ Assert.assertEquals("measurement should be non null value",
e.getMessage());
+ }
+
+ try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
+ String deviceId = "root.sg1.clsu.aligned_d1";
+ Tablet tablet =
+ new Tablet(
+ deviceId,
+ Arrays.asList(
+ new MeasurementSchema("s1", TSDataType.BOOLEAN),
+ new MeasurementSchema(null, TSDataType.INT32)),
+ 1);
+ tablet.addTimestamp(0, 300);
+ tablet.addValue("s1", 0, true);
+ // doesn't insert 2nd measurement
+ session.insertAlignedTablet(tablet);
+ fail();
+ } catch (Exception e) {
+ Assert.assertEquals("measurement should be non null value",
e.getMessage());
+ }
+ }
}
diff --git
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
index dea03f91ea7..d283b1ee066 100644
--- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -2687,6 +2687,9 @@ public class Session implements ISession {
TSInsertTabletReq request = new TSInsertTabletReq();
for (IMeasurementSchema measurementSchema : tablet.getSchemas()) {
+ if (measurementSchema.getMeasurementId() == null) {
+ throw new IllegalArgumentException("measurement should be non null
value");
+ }
request.addToMeasurements(measurementSchema.getMeasurementId());
request.addToTypes(measurementSchema.getType().ordinal());
}
@@ -2807,6 +2810,9 @@ public class Session implements ISession {
List<Integer> dataTypes = new ArrayList<>();
request.setIsAligned(isAligned);
for (IMeasurementSchema measurementSchema : tablet.getSchemas()) {
+ if (measurementSchema.getMeasurementId() == null) {
+ throw new IllegalArgumentException("measurement should be non null
value");
+ }
measurements.add(measurementSchema.getMeasurementId());
dataTypes.add(measurementSchema.getType().ordinal());
}