This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch SessionInsertDebug in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit fe6d4731606df85d600f0a3228a013eefd1409f5 Author: HTHou <[email protected]> AuthorDate: Thu Apr 28 15:20:37 2022 +0800 debug --- .../main/java/org/apache/iotdb/SessionExample.java | 138 +++++++++++---------- .../db/mpp/sql/parser/StatementGenerator.java | 3 +- .../mpp/sql/statement/crud/InsertRowStatement.java | 1 + 3 files changed, 73 insertions(+), 69 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 b86a4cbcf7..3dbd4c9b1c 100644 --- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java +++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java @@ -69,18 +69,18 @@ public class SessionExample { // set session fetchSize session.setFetchSize(10000); + //session.executeNonQueryStatement("set storage group to root.sg1"); - try { - session.setStorageGroup("root.sg1"); - } catch (StatementExecutionException e) { - if (e.getStatusCode() != TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode()) { - throw e; - } - } +// try { +// session.setStorageGroup("root.sg1"); +// } catch (StatementExecutionException e) { +// if (e.getStatusCode() != TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode()) { +// throw e; +// } +// } // createTemplate(); - createTimeseries(); - createMultiTimeseries(); + //createTimeseries(); insertRecord(); insertTablet(); // insertTabletWithNullValues(); @@ -98,16 +98,16 @@ public class SessionExample { // 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(); +// 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.close(); } @@ -133,56 +133,60 @@ public class SessionExample { private static void createTimeseries() throws IoTDBConnectionException, StatementExecutionException { - - if (!session.checkTimeseriesExists(ROOT_SG1_D1_S1)) { - session.createTimeseries( - ROOT_SG1_D1_S1, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY); - } - if (!session.checkTimeseriesExists(ROOT_SG1_D1_S2)) { - session.createTimeseries( - ROOT_SG1_D1_S2, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY); - } - if (!session.checkTimeseriesExists(ROOT_SG1_D1_S3)) { - session.createTimeseries( - ROOT_SG1_D1_S3, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY); - } - - // create timeseries with tags and attributes - if (!session.checkTimeseriesExists(ROOT_SG1_D1_S4)) { - Map<String, String> tags = new HashMap<>(); - tags.put("tag1", "v1"); - Map<String, String> attributes = new HashMap<>(); - attributes.put("description", "v1"); - session.createTimeseries( - ROOT_SG1_D1_S4, - TSDataType.INT64, - TSEncoding.RLE, - CompressionType.SNAPPY, - null, - tags, - attributes, - "temperature"); - } + session.executeNonQueryStatement("create timeseries root.sg1.d1.s1 with datatype=int64"); + session.executeNonQueryStatement("create timeseries root.sg1.d1.s2 with datatype=int64"); + session.executeNonQueryStatement("create timeseries root.sg1.d1.s3 with datatype=int64"); + + +// if (!session.checkTimeseriesExists(ROOT_SG1_D1_S1)) { +// session.createTimeseries( +// ROOT_SG1_D1_S1, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY); +//// } +//// if (!session.checkTimeseriesExists(ROOT_SG1_D1_S2)) { +// session.createTimeseries( +// ROOT_SG1_D1_S2, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY); +//// } +//// if (!session.checkTimeseriesExists(ROOT_SG1_D1_S3)) { +// session.createTimeseries( +// ROOT_SG1_D1_S3, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY); +//// } + +// // create timeseries with tags and attributes +// if (!session.checkTimeseriesExists(ROOT_SG1_D1_S4)) { +// Map<String, String> tags = new HashMap<>(); +// tags.put("tag1", "v1"); +// Map<String, String> attributes = new HashMap<>(); +// attributes.put("description", "v1"); +// session.createTimeseries( +// ROOT_SG1_D1_S4, +// TSDataType.INT64, +// TSEncoding.RLE, +// CompressionType.SNAPPY, +// null, +// tags, +// attributes, +// "temperature"); +// } // create timeseries with SDT property, SDT will take place when flushing - if (!session.checkTimeseriesExists(ROOT_SG1_D1_S5)) { - // COMPDEV is required - // COMPMAXTIME and COMPMINTIME are optional and their unit is ms - Map<String, String> props = new HashMap<>(); - props.put("LOSS", "sdt"); - props.put("COMPDEV", "0.01"); - props.put("COMPMINTIME", "2"); - props.put("COMPMAXTIME", "10"); - session.createTimeseries( - ROOT_SG1_D1_S5, - TSDataType.INT64, - TSEncoding.RLE, - CompressionType.SNAPPY, - props, - null, - null, - null); - } +// if (!session.checkTimeseriesExists(ROOT_SG1_D1_S5)) { +// // COMPDEV is required +// // COMPMAXTIME and COMPMINTIME are optional and their unit is ms +// Map<String, String> props = new HashMap<>(); +// props.put("LOSS", "sdt"); +// props.put("COMPDEV", "0.01"); +// props.put("COMPMINTIME", "2"); +// props.put("COMPMAXTIME", "10"); +// session.createTimeseries( +// ROOT_SG1_D1_S5, +// TSDataType.INT64, +// TSEncoding.RLE, +// CompressionType.SNAPPY, +// props, +// null, +// null, +// null); +// } } private static void createMultiTimeseries() diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/sql/parser/StatementGenerator.java b/server/src/main/java/org/apache/iotdb/db/mpp/sql/parser/StatementGenerator.java index 5545e169e7..92d3bf2d0d 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/sql/parser/StatementGenerator.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/sql/parser/StatementGenerator.java @@ -165,10 +165,9 @@ public class StatementGenerator { InsertRowStatement insertStatement = new InsertRowStatement(); insertStatement.setDevicePath(new PartialPath(insertRecordReq.getPrefixPath())); insertStatement.setTime(insertRecordReq.getTimestamp()); - - insertStatement.fillValues(insertRecordReq.values); insertStatement.setMeasurements(insertRecordReq.getMeasurements().toArray(new String[0])); insertStatement.setAligned(insertRecordReq.isAligned); + insertStatement.fillValues(insertRecordReq.values); return insertStatement; } diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/sql/statement/crud/InsertRowStatement.java b/server/src/main/java/org/apache/iotdb/db/mpp/sql/statement/crud/InsertRowStatement.java index 72dfed7322..39f9a0ac56 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/sql/statement/crud/InsertRowStatement.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/sql/statement/crud/InsertRowStatement.java @@ -71,6 +71,7 @@ public class InsertRowStatement extends InsertBaseStatement { public void fillValues(ByteBuffer buffer) throws QueryProcessException { this.values = new Object[measurements.length]; + this.dataTypes = new TSDataType[measurements.length]; for (int i = 0; i < dataTypes.length; i++) { // types are not determined, the situation mainly occurs when the plan uses string values // and is forwarded to other nodes
