This is an automated email from the ASF dual-hosted git repository. qiaojialin pushed a commit to branch fix_insert_tablet in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit e1687dfe95f2cb316a7a5a3978f3d84772197970 Author: qiaojialin <[email protected]> AuthorDate: Mon Jun 22 13:59:59 2020 +0800 fix insert tablet serialize --- .../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();
