You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/06/22 08:00:48 UTC

[incubator-iotdb] branch rel/0.10 updated: fix insert tablet serialize (#1404)

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

qiaojialin pushed a commit to branch rel/0.10
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/rel/0.10 by this push:
     new 6474694  fix insert tablet serialize (#1404)
6474694 is described below

commit 64746943d1bdef7cda19528433d248118b75f868
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Mon Jun 22 16:00:08 2020 +0800

    fix insert tablet serialize (#1404)
---
 .../db/qp/physical/crud/InsertTabletPlan.java      |  2 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java | 32 ++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java
index 4fcd813..2928116 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java
@@ -285,7 +285,7 @@ public class InsertTabletPlan extends PhysicalPlan {
       case BOOLEAN:
         boolean[] boolValues = (boolean[]) column;
         for (int j = start; j < end; j++) {
-          buffer.putInt(BytesUtils.boolToByte(boolValues[j]));
+          buffer.put(BytesUtils.boolToByte(boolValues[j]));
         }
         break;
       case TEXT:
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java
index 953a76e..006e8bb 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java
@@ -24,16 +24,20 @@ import static junit.framework.TestCase.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.qp.physical.crud.DeletePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
+import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.writelog.io.ILogReader;
 import org.apache.iotdb.db.writelog.node.ExclusiveWriteLogNode;
 import org.apache.iotdb.db.writelog.node.WriteLogNode;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.Path;
+import org.apache.iotdb.tsfile.utils.Binary;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,8 +75,34 @@ public class WriteLogNodeTest {
         new String[]{"1.0", "15", "str", "false"});
     DeletePlan deletePlan = new DeletePlan(50, new Path(identifier + ".s1"));
 
+    long[] times = new long[]{110L, 111L, 112L, 113L};
+    List<Integer> dataTypes = new ArrayList<>();
+    dataTypes.add(TSDataType.DOUBLE.ordinal());
+    dataTypes.add(TSDataType.INT64.ordinal());
+    dataTypes.add(TSDataType.TEXT.ordinal());
+    dataTypes.add(TSDataType.BOOLEAN.ordinal());
+    Object[] columns = new Object[4];
+    columns[0] = new double[4];
+    columns[1] = new long[4];
+    columns[2] = new Binary[4];
+    columns[3] = new boolean[4];
+    for (int r = 0; r < 4; r++) {
+      ((double[]) columns[0])[r] = 1.0;
+      ((long[]) columns[1])[r] = 1;
+      ((Binary[]) columns[2])[r] = new Binary("hh" + r);
+      ((boolean[]) columns[3])[r] = false;
+    }
+    InsertTabletPlan tabletPlan = new InsertTabletPlan(identifier,
+        new String[]{"s1", "s2", "s3", "s4"}, dataTypes);
+    tabletPlan.setTimes(times);
+    tabletPlan.setColumns(columns);
+    tabletPlan.setRowCount(times.length);
+    tabletPlan.setStart(0);
+    tabletPlan.setEnd(4);
+
     logNode.write(bwInsertPlan);
     logNode.write(deletePlan);
+    logNode.write(tabletPlan);
 
     logNode.close();
 
@@ -83,6 +113,8 @@ public class WriteLogNodeTest {
     ILogReader reader = logNode.getLogReader();
     assertEquals(bwInsertPlan, reader.next());
     assertEquals(deletePlan, reader.next());
+    InsertTabletPlan newPlan = (InsertTabletPlan) reader.next();
+    assertEquals(newPlan.getMeasurements().length, 4);
     reader.close();
 
     logNode.delete();