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