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);