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 2019/08/29 08:52:29 UTC

[incubator-iotdb] 02/02: fix create timeseries rpc lack compressor bug

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

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

commit c9cdd8b8129df6866ffc06585de2d515d8877720
Author: qiaojialin <64...@qq.com>
AuthorDate: Thu Aug 29 16:52:10 2019 +0800

    fix create timeseries rpc lack compressor bug
---
 example/session/src/main/java/org/apache/iotdb/SessionExample.java | 7 ++++---
 .../java/org/apache/iotdb/db/qp/physical/sys/MetadataPlan.java     | 3 ++-
 .../src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java   | 7 +++++--
 service-rpc/src/main/thrift/rpc.thrift                             | 1 +
 session/src/main/java/org/apache/iotdb/session/Session.java        | 4 +++-
 5 files changed, 15 insertions(+), 7 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 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/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);