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

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


The following commit(s) were added to refs/heads/master by this push:
     new 18ae6c7  F fix create tsrpc lack compressor (#361)
18ae6c7 is described below

commit 18ae6c768cfec668f026dabd526095eba5637d6b
Author: Jialin Qiao <[email protected]>
AuthorDate: Thu Aug 29 18:27:55 2019 +0800

    F fix create tsrpc lack compressor (#361)
    
    * fix create timeseries rpc lack compressor bug
    * update jdbc example
---
 example/jdbc/pom.xml                               |  2 +-
 .../main/java/org/apache/iotdb/JDBCExample.java    | 38 +++++++++++++++++-----
 example/pom.xml                                    |  1 +
 .../main/java/org/apache/iotdb/SessionExample.java |  7 ++--
 .../iotdb/db/qp/physical/sys/MetadataPlan.java     |  3 +-
 .../iotdb/db/query/executor/EngineQueryRouter.java |  8 ++---
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  7 ++--
 service-rpc/src/main/thrift/rpc.thrift             |  1 +
 .../java/org/apache/iotdb/session/Session.java     |  4 ++-
 9 files changed, 50 insertions(+), 21 deletions(-)

diff --git a/example/jdbc/pom.xml b/example/jdbc/pom.xml
index 065731f..4f01935 100644
--- a/example/jdbc/pom.xml
+++ b/example/jdbc/pom.xml
@@ -27,7 +27,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>jdbc-example</artifactId>
-    <name>jdbc-example</name>
+    <name>jdbc example</name>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <maven.compiler.source>1.7</maven.compiler.source>
diff --git a/example/jdbc/src/main/java/org/apache/iotdb/JDBCExample.java 
b/example/jdbc/src/main/java/org/apache/iotdb/JDBCExample.java
index f67caf0..b0ea2b5 100644
--- a/example/jdbc/src/main/java/org/apache/iotdb/JDBCExample.java
+++ b/example/jdbc/src/main/java/org/apache/iotdb/JDBCExample.java
@@ -36,21 +36,41 @@ public class JDBCExample {
       statement.execute("CREATE TIMESERIES root.sg1.d1.s2 WITH DATATYPE=INT64, 
ENCODING=RLE");
       statement.execute("CREATE TIMESERIES root.sg1.d1.s3 WITH DATATYPE=INT64, 
ENCODING=RLE");
 
-      for (int i = 0; i < 10; i++) {
-        for (int j = 0 ; j < 10; j++) {
-          statement.addBatch("insert into root.sg1.d1(timestamp, s1, s2, s3) 
values("+ (i * 10 + j) + "," + 1 + "," + 1 + "," + 1 + ")");
-        }
+      for (int i = 0; i <= 100; i++) {
+        statement.addBatch("insert into root.sg1.d1(timestamp, s1, s2, s3) 
values("+ i + "," + 1 + "," + 1 + "," + 1 + ")");
         statement.executeBatch();
         statement.clearBatch();
       }
-      ResultSet resultSet = statement.executeQuery("select * from root");
-      ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+      ResultSet resultSet = statement.executeQuery("select * from root where 
time <= 10");
+      outputResult(resultSet);
+      resultSet = statement.executeQuery("select count(*) from root");
+      outputResult(resultSet);
+      resultSet = statement.executeQuery("select count(*) from root where time 
>= 1 and time <= 100 group by (20ms, 0, [0, 100])");
+      outputResult(resultSet);
+    }
+  }
+
+  private static void outputResult(ResultSet resultSet) throws SQLException {
+    if (resultSet != null) {
+      System.out.println("--------------------------");
+      final ResultSetMetaData metaData = resultSet.getMetaData();
+      final int columnCount = metaData.getColumnCount();
+      for (int i = 0; i < columnCount; i++) {
+        System.out.print(metaData.getColumnLabel(i + 1) + " ");
+      }
+      System.out.println();
       while (resultSet.next()) {
-        StringBuilder builder = new StringBuilder();
-        for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-          builder.append(resultSet.getString(i)).append(",");
+        for (int i = 1; ; i++) {
+          System.out.print(resultSet.getString(i));
+          if (i < columnCount) {
+            System.out.print(", ");
+          } else {
+            System.out.println();
+            break;
+          }
         }
       }
+      System.out.println("--------------------------\n");
     }
   }
 }
diff --git a/example/pom.xml b/example/pom.xml
index 4750be3..ab426fd 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -38,6 +38,7 @@
         <module>rocketmq</module>
         <module>session</module>
         <module>tsfile</module>
+        <module>jdbc</module>
     </modules>
     <build>
         <pluginManagement>
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 0becd79..d6bc905 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -20,6 +20,7 @@ package org.apache.iotdb;
 
 import org.apache.iotdb.session.IoTDBSessionException;
 import org.apache.iotdb.session.Session;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.write.record.RowBatch;
@@ -33,9 +34,9 @@ public class SessionExample {
     session.open();
 
     session.setStorageGroup("root.sg1");
-    session.createTimeseries("root.sg1.d1.s1", TSDataType.INT64, 
TSEncoding.RLE);
-    session.createTimeseries("root.sg1.d1.s2", TSDataType.INT64, 
TSEncoding.RLE);
-    session.createTimeseries("root.sg1.d1.s3", TSDataType.INT64, 
TSEncoding.RLE);
+    session.createTimeseries("root.sg1.d1.s1", TSDataType.INT64, 
TSEncoding.RLE, CompressionType.SNAPPY);
+    session.createTimeseries("root.sg1.d1.s2", TSDataType.INT64, 
TSEncoding.RLE, CompressionType.SNAPPY);
+    session.createTimeseries("root.sg1.d1.s3", TSDataType.INT64, 
TSEncoding.RLE, CompressionType.SNAPPY);
 
     Schema schema = new Schema();
     schema.registerMeasurement(new MeasurementSchema("s1", TSDataType.INT64, 
TSEncoding.RLE));
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MetadataPlan.java 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MetadataPlan.java
index cae6f63..ae8f8b4 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MetadataPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MetadataPlan.java
@@ -59,12 +59,13 @@ public class MetadataPlan extends PhysicalPlan {
   }
 
   public MetadataPlan(MetadataOperator.NamespaceType namespaceType, Path path, 
TSDataType dataType,
-                      TSEncoding encoding) {
+                      TSEncoding encoding, CompressionType compressor) {
     super(false, Operator.OperatorType.METADATA);
     this.namespaceType = namespaceType;
     this.path = path;
     this.dataType = dataType;
     this.encoding = encoding;
+    this.compressor = compressor;
     setOperatorType(namespaceType);
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
 
b/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
index 3fa1608..1c081cd 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
@@ -113,10 +113,10 @@ public class EngineQueryRouter implements 
IEngineQueryRouter {
 
     // check the legitimacy of intervals
     for (Pair<Long, Long> pair : intervals) {
-      if (!(pair.left > 0 && pair.right > 0)) {
-        throw new ProcessorException(
-            String.format("Time interval<%d, %d> must be greater than 0.", 
pair.left, pair.right));
-      }
+//      if (!(pair.left > 0 && pair.right > 0)) {
+//        throw new ProcessorException(
+//            String.format("Time interval<%d, %d> must be greater than 0.", 
pair.left, pair.right));
+//      }
       if (pair.right < pair.left) {
         throw new ProcessorException(String.format(
             "Interval starting time must be greater than the interval ending 
time, "
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java 
b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 9856e8a..493331c 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -51,6 +51,7 @@ import org.apache.iotdb.rpc.TSStatusType;
 import org.apache.iotdb.service.rpc.thrift.*;
 import org.apache.iotdb.tsfile.common.constant.StatisticConstant;
 import 
org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.read.common.Path;
@@ -1027,8 +1028,10 @@ public class TSServiceImpl implements TSIService.Iface, 
ServerContext {
       logger.info(INFO_NOT_LOGIN, IoTDBConstant.GLOBAL_DB_NAME);
       return new TSRPCResp(getStatus(TSStatusType.NOT_LOGIN_ERROR));
     }
-    MetadataPlan plan = new 
MetadataPlan(MetadataOperator.NamespaceType.ADD_PATH, new Path(req.getPath()),
-            TSDataType.values()[req.getDataType()], 
TSEncoding.values()[req.getEncoding()]);
+    MetadataPlan plan = new 
MetadataPlan(MetadataOperator.NamespaceType.ADD_PATH,
+        new Path(req.getPath()),
+        TSDataType.values()[req.getDataType()], 
TSEncoding.values()[req.getEncoding()],
+        CompressionType.values()[req.compressor]);
     TS_Status status = checkAuthority(plan);
     if (status != null) {
       return new TSRPCResp(status);
diff --git a/service-rpc/src/main/thrift/rpc.thrift 
b/service-rpc/src/main/thrift/rpc.thrift
index 6eee9c1..ec05a27 100644
--- a/service-rpc/src/main/thrift/rpc.thrift
+++ b/service-rpc/src/main/thrift/rpc.thrift
@@ -248,6 +248,7 @@ struct TSCreateTimeseriesReq {
   1: required string path
   2: required i32 dataType
   3: required i32 encoding
+  4: required i32 compressor
 }
 
 struct ServerProperties {
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java 
b/session/src/main/java/org/apache/iotdb/session/Session.java
index 0b13c58..771b2d1 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.session;
 import org.apache.iotdb.rpc.IoTDBRPCException;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.service.rpc.thrift.*;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.write.record.RowBatch;
@@ -166,11 +167,12 @@ public class Session {
     }
   }
 
-  public TSRPCResp createTimeseries(String path, TSDataType dataType, 
TSEncoding encoding) throws IoTDBSessionException {
+  public TSRPCResp createTimeseries(String path, TSDataType dataType, 
TSEncoding encoding, CompressionType compressor) throws IoTDBSessionException {
     TSCreateTimeseriesReq request = new TSCreateTimeseriesReq();
     request.setPath(path);
     request.setDataType(dataType.ordinal());
     request.setEncoding(encoding.ordinal());
+    request.setCompressor(compressor.ordinal());
 
     try {
       return client.createTimeseries(request);

Reply via email to