You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2021/07/22 04:31:07 UTC

[iotdb] branch check_lost_data_ty updated: Fix bug

This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch check_lost_data_ty
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/check_lost_data_ty by this push:
     new 76ecb64  Fix bug
76ecb64 is described below

commit 76ecb64e084a7298f4c87ec2040fd2eb840bb8ec
Author: HTHou <hh...@outlook.com>
AuthorDate: Thu Jul 22 12:30:28 2021 +0800

    Fix bug
---
 .../main/java/org/apache/iotdb/SessionExample.java | 87 ++++++++++++----------
 .../physical/crud/InsertRowsOfOneDevicePlan.java   |  2 +-
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java | 33 ++------
 3 files changed, 54 insertions(+), 68 deletions(-)

diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index 386b4e4..cca1863 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -51,48 +51,57 @@ public class SessionExample {
 
   public static void main(String[] args)
       throws IoTDBConnectionException, StatementExecutionException {
-    session = new Session(LOCAL_HOST, 6667, "root", "root");
-    session.open(false);
-
-    // set session fetchSize
-    session.setFetchSize(10000);
-
-    try {
-      session.setStorageGroup("root.sg1");
-    } catch (StatementExecutionException e) {
-      if (e.getStatusCode() != TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode()) {
-        throw e;
-      }
-    }
-
-    createTimeseries();
-    createMultiTimeseries();
-    insertRecord();
-    insertTablet();
-    insertTablets();
-    insertRecords();
-    nonQuery();
-    query();
-    queryWithTimeout();
-    rawDataQuery();
-    queryByIterator();
-    deleteData();
-    deleteTimeseries();
-    setTimeout();
-
-    sessionEnableRedirect = new Session(LOCAL_HOST, 6667, "root", "root");
-    sessionEnableRedirect.setEnableQueryRedirection(true);
-    sessionEnableRedirect.open(false);
-
-    // set session fetchSize
-    sessionEnableRedirect.setFetchSize(10000);
-
-    insertRecord4Redirect();
-    query4Redirect();
-    sessionEnableRedirect.close();
+    session = new Session("127.0.0.1", 6667, "root", "root");
+    session.open();
+    List<Long> times = new ArrayList<>();
+    List<List<String>> measurements = new ArrayList<>();
+    List<List<TSDataType>> datatypes = new ArrayList<>();
+    List<List<Object>> values = new ArrayList<>();
+
+    String value = "{\"iMEI\":\"861394053542937\",\"packetData\":\"7E0F861394053542937FD41076134000150603102B070C9B94087084EFDF0825FFFE1F200F3006EE0ED02C70858FDD3F25201C0010F06F6008B203B23E041100004019A40C7405255006A4629804980334163A0ED068283840D3C1FD004D88EB0334257E0FD0A4383D40D302F2004D0CBC033433547F801E004441640E4116435DF0C2681EAC2FA50B14057980AA0176802607D2019A1E31076882681CA029327080E648CE63DAA1A8356954FA1C1F95AEC721593F40C364FA000D94DD033454460FD060593C40A325FB316D70D49AF4397D8E7F4 [...]
+    addLine(
+        times,
+        measurements,
+        datatypes,
+        values,
+        3L,
+        "TY_0001_Raw_Packet",
+        "s2",
+        TSDataType.TEXT,
+        TSDataType.INT32,
+        value,
+        2);
+    session.insertRecordsOfOneDevice("root.raw.08.8000867157042199208", times, measurements, datatypes, values);
     session.close();
   }
 
+  private static void addLine(
+      List<Long> times,
+      List<List<String>> measurements,
+      List<List<TSDataType>> datatypes,
+      List<List<Object>> values,
+      long time,
+      String s1,
+      String s2,
+      TSDataType s1type,
+      TSDataType s2type,
+      Object value1,
+      Object value2) {
+    List<String> tmpMeasurements = new ArrayList<>();
+    List<TSDataType> tmpDataTypes = new ArrayList<>();
+    List<Object> tmpValues = new ArrayList<>();
+    tmpMeasurements.add(s1);
+    tmpMeasurements.add(s2);
+    tmpDataTypes.add(s1type);
+    tmpDataTypes.add(s2type);
+    tmpValues.add(value1);
+    tmpValues.add(value2);
+    times.add(time);
+    measurements.add(tmpMeasurements);
+    datatypes.add(tmpDataTypes);
+    values.add(tmpValues);
+  }
+
   private static void createTimeseries()
       throws IoTDBConnectionException, StatementExecutionException {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java
index 16a6dc4..46da4e0 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java
@@ -71,7 +71,7 @@ public class InsertRowsOfOneDevicePlan extends InsertPlan implements BatchPlan {
       for(int j = 0; j < rowPlans[i].getMeasurements().length; j ++) {
         if (rowPlans[i].getMeasurements()[j].equals("TY_0001_Raw_Packet")) {
           String value = ((Binary) rowPlans[i].getValues()[j]).getStringValue().substring(0,100);
-          if (value.contains(rowPlans[i].getDeviceId().getTailNode().substring(4))) {
+          if (!value.contains(rowPlans[i].getDeviceId().getMeasurement().substring(4))) {
             logger.error("receive error data,device:{}, value(first 100 bytes): {}", rowPlans[i].getDeviceId(), value);
           }
         }
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
index a458a89..fe3dc37 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
@@ -450,43 +450,20 @@ public class IoTDBSessionSimpleIT {
     List<List<TSDataType>> datatypes = new ArrayList<>();
     List<List<Object>> values = new ArrayList<>();
 
+    String value = "{\"iMEI\":\"861394053542937\",\"packetData\":\"7E0F861394053542937FD41076134000150603102B070C9B94087084EFDF0825FFFE1F200F3006EE0ED02C70858FDD3F25201C0010F06F6008B203B23E041100004019A40C7405255006A4629804980334163A0ED068283840D3C1FD004D88EB0334257E0FD0A4383D40D302F2004D0CBC033433547F801E004441640E4116435DF0C2681EAC2FA50B14057980AA0176802607D2019A1E31076882681CA029327080E648CE63DAA1A8356954FA1C1F95AEC721593F40C364FA000D94DD033454460FD060593C40A325FB316D70D49AF4397D8E7F4 [...]
     addLine(
         times,
         measurements,
         datatypes,
         values,
         3L,
-        "s1",
+        "TY_0001_Raw_Packet",
         "s2",
+        TSDataType.TEXT,
         TSDataType.INT32,
-        TSDataType.INT32,
-        1,
+        value,
         2);
-    addLine(
-        times,
-        measurements,
-        datatypes,
-        values,
-        2L,
-        "s2",
-        "s3",
-        TSDataType.INT32,
-        TSDataType.INT64,
-        3,
-        4L);
-    addLine(
-        times,
-        measurements,
-        datatypes,
-        values,
-        1L,
-        "s4",
-        "s5",
-        TSDataType.FLOAT,
-        TSDataType.BOOLEAN,
-        5.0f,
-        Boolean.TRUE);
-    session.insertRecordsOfOneDevice("root.sg.d1", times, measurements, datatypes, values);
+    session.insertRecordsOfOneDevice("root.raw.08.8000867157042199208", times, measurements, datatypes, values);
     checkResult(session);
     session.close();
   }