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/12/02 08:36:47 UTC

[incubator-iotdb] 02/02: [IOTDB-327] fix group by (#596)

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

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

commit 7598f9fd10e2ed594d2d2144375074840c73ff2b
Author: SilverNarcissus <15...@smail.nju.edu.cn>
AuthorDate: Mon Dec 2 16:34:24 2019 +0800

    [IOTDB-327] fix group by (#596)
    
    * fix bug in group by
    
    (cherry picked from commit c300fc6c7bf40f67bdaf6848c5a885630726a72a)
---
 .../db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java  | 6 ++++++
 .../test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java   | 1 +
 2 files changed, 7 insertions(+)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java
index 9ca26ed..6b70c9a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithoutValueFilterDataSet.java
@@ -39,6 +39,7 @@ import org.apache.iotdb.tsfile.read.common.BatchData;
 import org.apache.iotdb.tsfile.read.common.Field;
 import org.apache.iotdb.tsfile.read.common.Path;
 import org.apache.iotdb.tsfile.read.common.RowRecord;
+import org.apache.iotdb.tsfile.read.common.TimeRange;
 import org.apache.iotdb.tsfile.read.expression.IExpression;
 import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
@@ -307,6 +308,11 @@ public class GroupByWithoutValueFilterDataSet extends GroupByEngineDataSet {
       return false;
     }
 
+    TimeRange range = new TimeRange(startTime, endTime - 1);
+    if (!range.contains(new TimeRange(minTime, maxTime))) {
+      return false;
+    }
+
     // cal unsequence data with timestamps between pages.
     function.calculateValueFromUnsequenceReader(unSequenceReader, minTime);
 
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
index f39fd8d..01e9e0c 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
@@ -67,6 +67,7 @@ public class IOTDBGroupByIT {
           + "values(100, 100.1, false, 110)",
       "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
           + "values(150, 200.2, true, 220)",
+      "flush",
       "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
           + "values(200, 300.3, false, 330 )",
       "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "