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

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


The following commit(s) were added to refs/heads/cluster by this push:
     new 3a76baa  add query process test
3a76baa is described below

commit 3a76baa67662b675151b04fa4cc081510d62ad93
Author: lta <[email protected]>
AuthorDate: Fri Apr 5 21:36:09 2019 +0800

    add query process test
---
 .../org/apache/iotdb/db/qp/QueryProcessorTest.java | 82 ++++++++++++++++++++--
 1 file changed, 76 insertions(+), 6 deletions(-)

diff --git a/iotdb/src/test/java/org/apache/iotdb/db/qp/QueryProcessorTest.java 
b/iotdb/src/test/java/org/apache/iotdb/db/qp/QueryProcessorTest.java
index 0f13e2c..e9daf05 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/qp/QueryProcessorTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/qp/QueryProcessorTest.java
@@ -20,22 +20,76 @@ package org.apache.iotdb.db.qp;
 
 import static org.junit.Assert.assertEquals;
 
-import org.apache.iotdb.db.exception.ArgsErrorException;
-import org.apache.iotdb.db.exception.ProcessorException;
-import org.apache.iotdb.db.exception.qp.QueryProcessorException;
+import java.util.Collections;
+import org.apache.iotdb.db.metadata.MManager;
 import org.apache.iotdb.db.qp.executor.OverflowQPExecutor;
-import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
+import org.apache.iotdb.db.utils.EnvironmentUtils;
+import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
+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.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 public class QueryProcessorTest {
 
+  private CompressionType compressionType = 
CompressionType.valueOf(TSFileConfig.compressor);
+  private MManager mManager = MManager.getInstance();
   private QueryProcessor processor = new QueryProcessor(new 
OverflowQPExecutor());
 
+  @Before
+  public void setUp() throws Exception {
+    EnvironmentUtils.envSetUp();
+    mManager.setStorageLevelToMTree("root.vehicle");
+    mManager.setStorageLevelToMTree("root.vehicle1");
+    mManager.addPathToMTree("root.vehicle.device1.sensor1", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle.device1.sensor2", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle.device1.sensor3", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle.device2.sensor1", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle.device2.sensor2", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle.device2.sensor3", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle1.device1.sensor1", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle1.device1.sensor2", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle1.device1.sensor3", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle1.device2.sensor1", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle1.device2.sensor2", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+    mManager.addPathToMTree("root.vehicle1.device2.sensor3", 
TSDataType.valueOf("INT32"),
+        TSEncoding.valueOf("RLE"), compressionType, Collections
+            .emptyMap());
+  }
+
+  @After
+  public void tearDown() throws Exception {
+    EnvironmentUtils.cleanEnv();
+  }
+
   @Test
-  public void parseSQLToPhysicalPlan()
-      throws ArgsErrorException, ProcessorException, QueryProcessorException {
+  public void parseSQLToPhysicalPlan() throws Exception {
     String createSGStatement = "set storage group to root.vehicle";
     PhysicalPlan plan1 = processor.parseSQLToPhysicalPlan(createSGStatement);
     assertEquals(OperatorType.SET_STORAGE_GROUP, plan1.getOperatorType());
@@ -60,5 +114,21 @@ public class QueryProcessorTest {
     PhysicalPlan plan6 = processor.parseSQLToPhysicalPlan(deleteStatement);
     assertEquals(OperatorType.DELETE, plan6.getOperatorType());
 
+    String queryStatement = "select * from root.vehicle where 
root.vehicle.device1.sensor1 > 50";
+    PhysicalPlan plan7 = processor.parseSQLToPhysicalPlan(queryStatement);
+    assertEquals(OperatorType.QUERY, plan7.getOperatorType());
+
+    String aggregationStatement = "select sum(*) from root.vehicle where 
root.vehicle.device1.sensor1 > 50";
+    PhysicalPlan plan8 = 
processor.parseSQLToPhysicalPlan(aggregationStatement);
+    assertEquals(OperatorType.AGGREGATION, plan8.getOperatorType());
+
+    String groupbyStatement = "select sum(*) from root.vehicle where 
root.vehicle.device1.sensor1 > 50 group by (20ms, [100,1100])";
+    PhysicalPlan plan9 = processor.parseSQLToPhysicalPlan(groupbyStatement);
+    assertEquals(OperatorType.GROUPBY, plan9.getOperatorType());
+
+    String fillStatement = "select sensor1 from root.vehicle.device1 where 
time = 50 Fill(int32[linear, 5m, 5m], boolean[previous, 5m])";
+    PhysicalPlan plan10 = processor.parseSQLToPhysicalPlan(fillStatement);
+    assertEquals(OperatorType.FILL, plan10.getOperatorType());
+
   }
 }
\ No newline at end of file

Reply via email to