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