You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2020/02/28 01:19:24 UTC

[incubator-iotdb] 01/01: resolve conflixts

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

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

commit cf31d9c0449bb962793ace31efa9355947520c99
Merge: d8bcffc d6ae1c3
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Fri Feb 28 09:14:40 2020 +0800

    resolve conflixts

 README.md                                          |   2 +-
 client-py/src/client_example.py                    |  33 +--
 .../SystemDesign/1-TsFile/3-Write.md               |   8 +-
 .../4-StorageEngine/1-StorageEngine.md             |  30 +--
 .../4-StorageEngine/5-DataPartition.md             |  86 +++++++
 .../4-StorageEngine/6-DataManipulation.md          |  96 ++++++++
 .../SystemDesign/5-DataQuery/2-SeriesReader.md     |   2 +-
 .../SystemDesign/7-Connector/3-Spark-TsFile.md     | 101 ++++++++
 .../SystemDesign/7-Connector/4-Spark-IOTDB.md      |  89 +++++++
 .../UserGuide/0-Get Started/1-QuickStart.md        |   2 +-
 .../UserGuide/4-Client/6-Status Codes.md           |  65 +++++
 .../2-DML (Data Manipulation Language).md          |  23 +-
 .../5-Operation Manual/4-SQL Reference.md          |  25 +-
 docs/Documentation/SystemDesign/0-Content.md       |   6 +-
 docs/Documentation/UserGuide/0-Content.md          |   1 +
 .../UserGuide/0-Get Started/1-QuickStart.md        |   9 +-
 .../UserGuide/4-Client/6-Status Codes.md           |  66 +++++
 .../2-DML (Data Manipulation Language).md          |  19 +-
 .../5-Operation Manual/4-SQL Reference.md          |  12 +-
 .../main/java/org/apache/iotdb/JDBCExample.java    |   2 +-
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |  27 ++-
 .../org/apache/iotdb/jdbc/IoTDBResultMetadata.java |   7 +-
 .../apache/iotdb/jdbc/IoTDBResultMetadataTest.java |  30 ++-
 .../org/apache/iotdb/db/qp/strategy/SqlBase.g4     |  33 +--
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  12 +-
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  33 ++-
 .../apache/iotdb/db/engine/cache/ChunkCache.java   |  37 ++-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |   2 +-
 .../engine/storagegroup/StorageGroupProcessor.java |  37 ++-
 .../org/apache/iotdb/db/metadata/MManager.java     |   2 +-
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  64 ++++-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  10 +-
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  13 +-
 .../db/query/aggregation/AggregateResult.java      |  95 +++++++-
 .../db/query/aggregation/AggregationType.java      | 100 ++++++++
 .../db/query/aggregation/impl/AvgAggrResult.java   |  39 ++-
 .../db/query/aggregation/impl/CountAggrResult.java |  19 +-
 .../aggregation/impl/FirstValueAggrResult.java     |  38 ++-
 .../aggregation/impl/LastValueAggrResult.java      |  38 ++-
 .../query/aggregation/impl/MaxTimeAggrResult.java  |  24 +-
 .../query/aggregation/impl/MaxValueAggrResult.java |  20 +-
 .../query/aggregation/impl/MinTimeAggrResult.java  |  25 +-
 .../query/aggregation/impl/MinValueAggrResult.java |  21 +-
 .../db/query/aggregation/impl/SumAggrResult.java   |  32 ++-
 .../iotdb/db/query/control/FileReaderManager.java  |  34 ++-
 .../iotdb/db/query/control/QueryFileManager.java   |  17 +-
 .../dataset/RawQueryDataSetWithoutValueFilter.java |  13 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |  14 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   6 +-
 .../db/query/executor/AggregationExecutor.java     |   8 +-
 ...ultFactory.java => AggregateResultFactory.java} |  42 +++-
 .../iotdb/db/query/reader/series/SeriesReader.java |   8 +-
 .../reader/universal/PriorityMergeReader.java      |  26 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  19 +-
 .../java/org/apache/iotdb/db/utils/MemUtils.java   |  21 +-
 .../integration/IOTDBGroupByInnerIntervalIT.java   |   4 +-
 .../iotdb/db/integration/IoTDBAggregationIT.java   |   8 +-
 .../integration/IoTDBAggregationSmallDataIT.java   |   2 +-
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java |   4 +-
 .../integration/IoTDBLoadExternalTsfileTest.java   |   2 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   4 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |   4 +
 .../iotdb/db/integration/IoTDBSimpleQueryTest.java |  59 +++++
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |  14 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  57 ++++-
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |  16 +-
 .../db/query/aggregation/AggregateResultTest.java  | 265 +++++++++++++++++++++
 .../iotdb/db/query/component/SimpleFileWriter.java |  54 -----
 .../reader/series/SeriesAggregateReaderTest.java   |   4 +-
 server/src/test/resources/logback.xml              |   9 +-
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   |   2 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |   4 +-
 service-rpc/src/main/thrift/rpc.thrift             |   3 +-
 .../java/org/apache/iotdb/session/Session.java     |  14 +-
 .../org/apache/iotdb/spark/db/Converter.scala      |  37 +--
 .../org/apache/iotdb/spark/db/DefaultSource.scala  |  37 +--
 .../org/apache/iotdb/spark/db/IoTDBOptions.scala   |  37 +--
 .../scala/org/apache/iotdb/spark/db/IoTDBRDD.scala |  37 +--
 .../org/apache/iotdb/spark/db/IoTDBRelation.scala  |  37 +--
 .../org/apache/iotdb/spark/db/Transformer.scala    |  37 +--
 .../scala/org/apache/iotdb/spark/db/package.scala  |  37 +--
 .../org/apache/iotdb/spark/db/IoTDBTest.scala      |  37 +--
 .../org/apache/iotdb/spark/tsfile/Converter.scala  |  37 +--
 .../apache/iotdb/spark/tsfile/DefaultSource.scala  |  36 +--
 .../iotdb/spark/tsfile/NarrowConverter.scala       |  37 +--
 .../spark/tsfile/NarrowTsFileOutputWriter.scala    |  37 +--
 .../apache/iotdb/spark/tsfile/Transformer.scala    |  37 +--
 .../iotdb/spark/tsfile/TsFileWriterFactory.scala   |  36 +--
 .../apache/iotdb/spark/tsfile/WideConverter.scala  |  37 +--
 .../spark/tsfile/WideTsFileOutputWriter.scala      |  37 +--
 .../org/apache/iotdb/spark/tsfile/package.scala    |  36 +--
 .../apache/iotdb/spark/tsfile/ConverterTest.scala  |  37 +--
 .../org/apache/iotdb/spark/tsfile/TSFileSuit.scala |  37 +--
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |  27 +--
 .../tsfile/read/query/dataset/EmptyDataSet.java    |  39 +++
 .../read/query/timegenerator/node/AndNode.java     |  14 +-
 .../read/query/timegenerator/node/LeafNode.java    |  11 +-
 .../tsfile/read/reader/DefaultTsFileInput.java     |   2 +-
 .../iotdb/tsfile/write/chunk/ChunkWriterImpl.java  |  14 +-
 .../apache/iotdb/tsfile/write/page/PageWriter.java |  12 +-
 .../tsfile/read/query/timegenerator/NodeTest.java  |  66 ++---
 .../iotdb/tsfile/read/reader/FakedBatchReader.java |  55 +++++
 102 files changed, 2291 insertions(+), 821 deletions(-)

diff --cc docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
index 2926043,7e07a88..34766cd
--- a/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
+++ b/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
@@@ -305,31 -307,7 +307,31 @@@ Note: the statement needs to satisfy th
  Note: Integer in <TimeUnit> needs to be greater than 0
  ```
  
 +* Group By Fill语句
 +
 +```
 +SELECT <SelectClause> FROM <FromClause> WHERE  <WhereClause> GROUP BY <GroupByClause> (FILL <GROUPBYFillClause>)?
 +GroupByClause : LPAREN <TimeInterval> COMMA <TimeUnit> RPAREN
 +GROUPBYFillClause : LPAREN <TypeClause> RPAREN
 +TypeClause : <AllClause> | <Int32Clause> | <Int64Clause> | <FloatClause> | <DoubleClause> | <BoolClause> | <TextClause> 
 +AllClause: ALL LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +Int32Clause: INT32 LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +Int64Clause: INT64 LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +FloatClause: FLOAT LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +DoubleClause: DOUBLE LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +BoolClause: BOOLEAN LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +TextClause: TEXT LBRACKET (<PreviousUntilLastClause> | <PreviousClause>)  RBRACKET
 +PreviousClause : PREVIOUS
 +PreviousUntilLastClause : PREVIOUSUNTILLAST
 +Eg: SELECT last_value(temperature) FROM root.ln.wf01.wt01 GROUP BY([20, 100), 5m) FILL (float[PREVIOUS])
 +Eg: SELECT last_value(power) FROM root.ln.wf01.wt01 GROUP BY([20, 100), 5m) FILL (int32[PREVIOUSUNTILLAST])
 +Eg: SELECT last_value(temperature), last_value(power) FROM root.ln.wf01.wt01 GROUP BY([20, 100), 5m) FILL (ALL[PREVIOUS])
 +Note: In group by fill, sliding step is not supported in group by clause
 +Note: Now, only last_value aggregation function is supported in group by fill.
 +Note: Linear fill is not supported in group by fill.
 +```
 +
- * Limit语句
+ * Limit & SLimit 语句
  
  ```
  SELECT <SelectClause> FROM <FromClause> [WHERE <WhereClause>] [<LIMITClause>] [<SLIMITClause>]
diff --cc server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 30733fd,01c72a7..6b3eb77
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@@ -219,9 -229,9 +220,13 @@@ public class PlanExecutor implements IP
      if (queryPlan instanceof AlignByDevicePlan) {
        queryDataSet = new AlignByDeviceDataSet((AlignByDevicePlan) queryPlan, context, queryRouter);
      } else {
-       if (queryPlan instanceof GroupByFillPlan) {
++
+       if (queryPlan.getPaths() == null || queryPlan.getPaths().isEmpty()) {
+         // no time series are selected, return EmptyDataSet
+         return new EmptyDataSet();
++      } else if (queryPlan instanceof GroupByFillPlan) {
 +        GroupByFillPlan groupByFillPlan = (GroupByFillPlan) queryPlan;
 +        return queryRouter.groupByFill(groupByFillPlan, context);
        } else if (queryPlan instanceof GroupByPlan) {
          GroupByPlan groupByPlan = (GroupByPlan) queryPlan;
          return queryRouter.groupBy(groupByPlan, context);