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

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

commit 84c4b5c1a7df67e55f166adf88823ba49c45de84
Merge: 8c3b9af 7e628d2
Author: HTHou <[email protected]>
AuthorDate: Tue Jul 14 09:33:42 2020 +0800

    merge master

 LICENSE-binary                                     |  72 +++-
 README.md                                          |  48 +--
 README_ZH.md                                       |  48 +--
 {example/flink => antlr}/pom.xml                   |  41 +-
 .../org/apache/iotdb/db/qp/strategy/SqlBase.g4     |  70 +++-
 cli/pom.xml                                        |   9 +-
 cli/src/assembly/resources/sbin/start-cli.sh       |   2 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |  10 +
 client-py/compile.bat                              |   2 +-
 client-py/compile.sh                               |   2 +-
 client-py/readme.md                                |   2 +-
 client-py/src/client_example.py                    |  28 +-
 distribution/pom.xml                               |   3 +-
 docker/src/main/Dockerfile                         |   4 +-
 docker/src/main/Dockerfile-0.10.0                  |  41 ++
 docs/Community/Materials.md                        |  12 +
 docs/Development/ContributeGuide.md                |   6 +-
 docs/Download/README.md                            |  36 ++
 docs/SystemDesign/Client/RPC.md                    |  11 +-
 docs/SystemDesign/Connector/Spark-TsFile.md        |  22 +-
 docs/SystemDesign/DataQuery/AlignByDeviceQuery.md  | 114 +++++-
 docs/SystemDesign/DataQuery/LastQuery.md           |   2 +-
 docs/SystemDesign/QueryEngine/Planner.md           |   6 +-
 docs/SystemDesign/SchemaManager/SchemaManager.md   |  81 ++++
 .../SystemDesign/StorageEngine/DataManipulation.md |   4 +-
 docs/SystemDesign/TsFile/Format.md                 |   2 +-
 .../Client/Programming - Other Languages.md        |   2 +-
 docs/UserGuide/Client/Status Codes.md              |   2 +
 docs/UserGuide/Comparison/TSDB-Comparison.md       | 386 +++++++++++++++++++
 docs/UserGuide/Concept/Encoding.md                 |   2 +
 .../DDL Data Definition Language.md                |   7 +
 .../DML Data Manipulation Language.md              |  43 ++-
 docs/UserGuide/Operation Manual/SQL Reference.md   |  36 +-
 docs/UserGuide/Server/Config Manual.md             |   9 +
 docs/UserGuide/Server/Download.md                  |   2 +-
 docs/zh/Development/ContributeGuide.md             |   4 +-
 docs/zh/Download/README.md                         |  30 ++
 docs/zh/SystemDesign/Client/RPC.md                 |  12 +-
 docs/zh/SystemDesign/Connector/Spark-TsFile.md     |  16 +
 .../SystemDesign/DataQuery/AlignByDeviceQuery.md   | 110 +++++-
 docs/zh/SystemDesign/DataQuery/LastQuery.md        |   2 +-
 docs/zh/SystemDesign/QueryEngine/Planner.md        |   4 +-
 .../zh/SystemDesign/SchemaManager/SchemaManager.md |  80 +++-
 .../SystemDesign/StorageEngine/DataManipulation.md |   4 +-
 docs/zh/SystemDesign/TsFile/Format.md              |   2 +-
 .../Client/Programming - Other Languages.md        |   2 +-
 docs/zh/UserGuide/Client/Status Codes.md           |   2 +
 docs/zh/UserGuide/Concept/Encoding.md              |   2 +
 .../UserGuide/Ecosystem Integration/Hive TsFile.md |   6 +-
 .../DDL Data Definition Language.md                |   6 +
 .../DML Data Manipulation Language.md              |  37 +-
 .../zh/UserGuide/Operation Manual/SQL Reference.md |  34 +-
 docs/zh/UserGuide/Server/Config Manual.md          |  19 +-
 example/flink/pom.xml                              |  10 +-
 example/hadoop/pom.xml                             |   6 +-
 example/jdbc/pom.xml                               |   2 +-
 example/kafka/pom.xml                              |   2 +-
 example/mqtt/pom.xml                               |   2 +-
 example/pom.xml                                    |   2 +-
 example/rocketmq/pom.xml                           |   2 +-
 example/session/pom.xml                            |   2 +-
 .../main/java/org/apache/iotdb/SessionExample.java |   2 +-
 example/tsfile/pom.xml                             |   2 +-
 flink-iotdb-connector/pom.xml                      |   2 +-
 flink-tsfile-connector/pom.xml                     |  25 +-
 grafana/pom.xml                                    |   2 +-
 hadoop/pom.xml                                     |   9 +-
 hive-connector/pom.xml                             |  13 +-
 jdbc/pom.xml                                       |   6 +-
 jdbc/src/main/feature/feature.xml                  |   1 +
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |   2 +-
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |  11 +-
 licenses/EDL License 1.0                           |  11 -
 pom.xml                                            |  29 +-
 server/pom.xml                                     |  40 +-
 .../resources/conf/iotdb-engine.properties         |  23 +-
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java  |   2 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 113 ++++--
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  90 ++---
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |   9 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  48 ++-
 .../db/conf/adapter/IoTDBConfigDynamicAdapter.java |  10 +-
 .../db/conf/adapter/ManageDynamicParameters.java   |   4 +-
 .../db/conf/directories/DirectoryManager.java      |   2 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  | 110 ++++--
 .../apache/iotdb/db/engine/cache/ChunkCache.java   |   8 +-
 .../iotdb/db/engine/cache/ChunkMetadataCache.java  |   2 +-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |  47 ++-
 .../apache/iotdb/db/engine/memtable/IMemTable.java |   9 +-
 .../db/engine/memtable/IWritableMemChunk.java      |  10 +-
 .../iotdb/db/engine/memtable/WritableMemChunk.java |   9 +-
 .../iotdb/db/engine/merge/recover/LogAnalyzer.java |  22 +-
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |   6 +-
 .../db/engine/merge/task/MergeMultiChunkTask.java  |   3 +-
 .../iotdb/db/engine/merge/task/MergeTask.java      |  22 +-
 .../iotdb/db/engine/modification/Deletion.java     |  47 ++-
 .../io/LocalTextModificationAccessor.java          |  20 +-
 .../engine/storagegroup/StorageGroupProcessor.java | 313 +++++++++------
 .../db/engine/storagegroup/TsFileProcessor.java    |  35 +-
 .../db/engine/storagegroup/TsFileResource.java     |  50 ++-
 .../version/SimpleFileVersionController.java       |  10 +-
 .../PathException.java => ShutdownException.java}  |  23 +-
 .../db/exception/runtime/SQLParserException.java   |   7 +-
 .../org/apache/iotdb/db/metadata/MLogWriter.java   |  65 ++--
 .../org/apache/iotdb/db/metadata/MManager.java     | 400 ++++++++++++++++---
 .../java/org/apache/iotdb/db/metadata/MTree.java   | 129 +++++--
 .../apache/iotdb/db/metadata/MetadataConstant.java |  10 +-
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   2 +-
 .../iotdb/db/metadata/mnode/StorageGroupMNode.java |   1 -
 .../apache/iotdb/db/monitor/MonitorConstants.java  |   2 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |  28 +-
 .../org/apache/iotdb/db/mqtt/PublishHandler.java   |  11 +-
 .../main/java/org/apache/iotdb/db/qp/Planner.java  |   3 +
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |  11 +-
 .../apache/iotdb/db/qp/executor/IPlanExecutor.java |  14 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  | 388 ++++---------------
 .../org/apache/iotdb/db/qp/logical/Operator.java   |   2 +-
 .../db/qp/logical/crud/DeleteDataOperator.java     |  18 +-
 .../logical/sys/CreateSnapshotOperator.java}       |  30 +-
 .../DeletePartitionOperator.java}                  |  33 +-
 .../TracingOperator.java}                          |  25 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |  14 +-
 .../db/qp/physical/crud/DeletePartitionPlan.java   |  34 +-
 .../iotdb/db/qp/physical/crud/DeletePlan.java      |  49 ++-
 .../iotdb/db/qp/physical/crud/InsertPlan.java      | 426 ++-------------------
 .../crud/{InsertPlan.java => InsertRowPlan.java}   | 219 +++++------
 .../db/qp/physical/crud/InsertTabletPlan.java      | 214 +++++------
 .../sys/CreateSnapshotPlan.java}                   |  29 +-
 .../db/qp/physical/sys/ShowTimeSeriesPlan.java     |  18 +
 .../sys/TracingPlan.java}                          |  31 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     | 160 ++++----
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  34 +-
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |  21 +-
 .../db/query/control/QueryResourceManager.java     |  78 +++-
 .../iotdb/db/query/control/TracingManager.java     | 138 +++++++
 .../db/query/dataset/AlignByDeviceDataSet.java     |  20 +-
 .../db/query/dataset/ShowTimeseriesDataSet.java    |  80 ++++
 .../query/dataset/groupby/GroupByFillDataSet.java  |   2 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |  38 +-
 .../iotdb/db/query/executor/QueryRouter.java       |  31 +-
 .../db/query/executor/RawDataQueryExecutor.java    |  14 +-
 .../iotdb/db/query/reader/series/SeriesReader.java |  60 ++-
 .../query/timegenerator/ServerTimeGenerator.java   |   7 +-
 .../java/org/apache/iotdb/db/service/IService.java |   3 +
 .../java/org/apache/iotdb/db/service/IoTDB.java    |  21 +-
 .../org/apache/iotdb/db/service/MQTTService.java   |   2 +
 .../java/org/apache/iotdb/db/service/Monitor.java  |   4 +-
 .../org/apache/iotdb/db/service/MonitorMBean.java  |   2 +-
 .../org/apache/iotdb/db/service/RPCService.java    | 218 ++---------
 .../apache/iotdb/db/service/RegisterManager.java   |  15 +
 .../org/apache/iotdb/db/service/TSServiceImpl.java | 218 ++++++++---
 .../iotdb/db/service/thrift/ThriftService.java     | 150 ++++++++
 .../db/service/thrift/ThriftServiceThread.java     | 143 +++++++
 .../iotdb/db/sync/receiver/SyncServerManager.java  | 189 +++------
 .../receiver/SyncServerManagerMBean.java}          |  28 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |  23 +-
 .../db/sync/sender/manage/SyncFileManager.java     |  27 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |   3 +-
 .../iotdb/db/tools/memestimation/MemEstTool.java   |   8 +-
 .../db/tools/memestimation/MemEstToolCmd.java      |   6 +-
 .../org/apache/iotdb/db/utils/CommonUtils.java     |  32 +-
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |   1 -
 .../java/org/apache/iotdb/db/utils/MemUtils.java   |   3 +
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |   2 +-
 .../java/org/apache/iotdb/db/utils/QueryUtils.java | 160 ++++++--
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |  28 +-
 .../org/apache/iotdb/db/utils/SerializeUtils.java  |  24 +-
 .../apache/iotdb/db/utils/TypeInferenceUtils.java  |   4 +-
 .../iotdb/db/utils/datastructure/TVList.java       |  35 +-
 .../writelog/manager/MultiFileLogNodeManager.java  |  57 +--
 .../iotdb/db/writelog/node/WriteLogNode.java       |   1 +
 .../iotdb/db/writelog/recover/LogReplayer.java     |  95 ++---
 .../writelog/recover/TsFileRecoverPerformer.java   |  23 +-
 .../adapter/IoTDBConfigDynamicAdapterTest.java     |  20 +-
 .../iotdb/db/engine/MetadataManagerHelper.java     |   3 +-
 .../db/engine/cache/ChunkMetadataCacheTest.java    |  15 +-
 .../iotdb/db/engine/merge/MergeOverLapTest.java    |  16 +-
 .../iotdb/db/engine/merge/MergePerfTest.java       |  11 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |   2 +-
 .../apache/iotdb/db/engine/merge/MergeTest.java    |  43 ++-
 .../iotdb/db/engine/merge/MergeUpgradeTest.java    |   8 +-
 .../engine/modification/DeletionFileNodeTest.java  |  77 ++--
 .../db/engine/modification/DeletionQueryTest.java  | 106 ++---
 .../engine/modification/ModificationFileTest.java  |   8 +-
 .../storagegroup/FileNodeManagerBenchmark.java     |  18 +-
 .../storagegroup/StorageGroupProcessorTest.java    |  42 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |  94 ++---
 .../engine/storagegroup/TsFileProcessorTest.java   |  10 +-
 .../db/integration/IoTDBCreateSnapshotIT.java      | 159 ++++++++
 .../iotdb/db/integration/IoTDBDeletionIT.java      |  37 ++
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |  66 +++-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   2 +
 .../db/integration/IoTDBRecoverUnclosedIT.java     | 270 +++++++++++++
 .../db/integration/IoTDBRemovePartitionIT.java     | 193 ++++++++++
 .../iotdb/db/integration/IoTDBRestartIT.java       | 148 ++++++-
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   | 164 +++++++-
 .../iotdb/db/integration/IoTDBTracingTest.java     |  67 ++++
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |  18 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  32 +-
 .../iotdb/db/metadata/MManagerImproveTest.java     |  22 +-
 .../apache/iotdb/db/mqtt/PublishHandlerTest.java   |   4 +-
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |  20 +-
 .../iotdb/db/qp/plan/ConcatOptimizerTest.java      |  27 +-
 .../iotdb/db/qp/plan/LogicalPlanSmallTest.java     | 104 ++++-
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |  61 ++-
 .../apache/iotdb/db/qp/plan/SerializationTest.java |  88 +++++
 .../dataset/EngineDataSetWithValueFilterTest.java  |  11 +-
 .../db/query/dataset/GroupByLevelDataSetTest.java  |   5 +-
 .../db/query/dataset/GroupByTimeDataSetTest.java   |   4 +-
 .../query/executor/GroupByEngineDataSetTest.java   |   9 +-
 .../iotdb/db/query/reader/ReaderTestHelper.java    |  11 +-
 .../reader/series/SeriesAggregateReaderTest.java   |   3 +-
 .../reader/series/SeriesReaderByTimestampTest.java |   3 +-
 .../db/query/reader/series/SeriesReaderTest.java   |   3 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |  49 ++-
 .../db/sync/receiver/load/FileLoaderTest.java      |  11 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |   7 +-
 .../db/sync/sender/manage/SyncFileManagerTest.java |  27 +-
 .../sender/recover/SyncSenderLogAnalyzerTest.java  |  25 +-
 .../org/apache/iotdb/db/tools/WalCheckerTest.java  |   6 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |  41 +-
 .../apache/iotdb/db/writelog/PerformanceTest.java  |  31 +-
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |   6 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |  62 ++-
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |  12 +-
 .../db/writelog/io/MultiFileLogReaderTest.java     |   2 +-
 .../db/writelog/recover/DeviceStringTest.java      |  15 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |  33 +-
 .../recover/RecoverResourceFromReaderTest.java     |  25 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |  31 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |  35 +-
 service-rpc/pom.xml                                | 113 +-----
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |   3 +-
 session/pom.xml                                    |   4 +-
 .../java/org/apache/iotdb/session/Session.java     |  84 ++--
 .../iotdb/session/pool/SessionDataSetWrapper.java  |   9 +-
 .../java/org/apache/iotdb/session/SessionUT.java   |  93 ++++-
 site/iotdb-doap.rdf                                |  80 ++++
 site/pom.xml                                       |  44 ++-
 site/src/main/.vuepress/config.js                  | 202 +++++++++-
 site/src/main/.vuepress/theme/styles/index.styl    |   4 +-
 spark-iotdb-connector/pom.xml                      |   2 +-
 .../apache/iotdb/spark/db/EnvironmentUtils.java    |  28 +-
 spark-tsfile/pom.xml                               |   4 +-
 .../apache/iotdb/spark/tsfile/DefaultSource.scala  |  13 +-
 {service-rpc => thrift}/pom.xml                    |  74 +---
 {service-rpc => thrift}/rpc-changelist.md          |  13 +-
 .../src/main/thrift/cluster.thrift                 |  34 +-
 {service-rpc => thrift}/src/main/thrift/rpc.thrift |  32 +-
 .../src/main/thrift/sync.thrift                    |   0
 {service-rpc => thrift}/src/pypi/README.md         |   4 +-
 {service-rpc => thrift}/src/pypi/setup.py          |   4 +-
 tsfile/pom.xml                                     |  10 +-
 .../apache/iotdb/tsfile/compress/ICompressor.java  |  47 ++-
 .../iotdb/tsfile/compress/IUnCompressor.java       | 106 ++++-
 .../iotdb/tsfile/file/metadata/ChunkMetadata.java  |  46 ++-
 .../tsfile/file/metadata/TimeseriesMetadata.java   |  21 +-
 .../file/metadata/enums/CompressionType.java       |  10 +-
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |   2 +-
 .../org/apache/iotdb/tsfile/read/common/Chunk.java |  17 +-
 .../apache/iotdb/tsfile/read/common/TimeRange.java |  51 ++-
 .../read/controller/CachedChunkLoaderImpl.java     |   2 +-
 .../iotdb/tsfile/read/filter/TimeFilter.java       |   2 +-
 .../tsfile/read/reader/chunk/ChunkReader.java      |  29 +-
 .../read/reader/chunk/ChunkReaderByTimestamp.java  |   4 +-
 .../iotdb/tsfile/read/reader/page/PageReader.java  |  41 +-
 .../iotdb/tsfile/utils/ReadWriteIOUtils.java       |  12 +-
 .../tsfile/v1/file/metadata/ChunkMetadataV1.java   |  11 +-
 .../tsfile/v1/read/TsFileSequenceReaderForV1.java  |   2 +-
 .../tsfile/write/schema/MeasurementSchema.java     |   3 +
 ...easurementSchema.java => TimeseriesSchema.java} | 108 ++----
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |  14 +-
 .../apache/iotdb/tsfile/compress/CompressTest.java |  32 +-
 .../compress/{SnappyTest.java => LZ4Test.java}     |  41 +-
 .../apache/iotdb/tsfile/compress/SnappyTest.java   |  21 +-
 .../iotdb/tsfile/read/common/TimeRangeTest.java    |  70 ++++
 .../iotdb/tsfile/read/reader/PageReaderTest.java   |  55 +++
 277 files changed, 7530 insertions(+), 3683 deletions(-)

diff --cc server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 5be346d,3721d5a..ad464d4
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@@ -689,12 -738,13 +738,13 @@@ public class TSServiceImpl implements T
        // Last Query should return different respond instead of the static one
        // because the query dataset and query id is different although the 
header of last query is same.
        return StaticResps.LAST_RESP.deepCopy();
-     } else if (plan instanceof AggregationPlan && 
((AggregationPlan)plan).getLevel() >= 0) {
-       Map<String, Long> finalPaths = 
FilePathUtils.getPathByLevel((AggregationPlan) plan, null);
-       TSDataType type = FilePathUtils.getTSDataType((AggregationPlan) plan);
+     } else if (plan instanceof AggregationPlan && ((AggregationPlan) 
plan).getLevel() >= 0) {
+       Map<String, Long> finalPaths = FilePathUtils
+           .getPathByLevel(((AggregationPlan) plan).getDeduplicatedPaths(),
+               ((AggregationPlan) plan).getLevel(), null);
        for (Map.Entry<String, Long> entry : finalPaths.entrySet()) {
 -        respColumns.add("count(" + entry.getKey() + ")");
 -        columnsTypes.add(TSDataType.INT64.toString());
 +        respColumns.add(((AggregationPlan) plan).getAggregations().get(0) + 
"(" + entry.getKey() + ")");
 +        columnsTypes.add(type.toString());
        }
      } else {
        getWideQueryHeaders(plan, respColumns, columnsTypes);

Reply via email to