You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2022/10/13 11:01:22 UTC
[iotdb] 01/01: Merge remote-tracking branch 'origin/master' into lmh/mppSelectInto
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch lmh/mppSelectInto
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 20502476aa05396014ed575fb318c00838be54b5
Merge: 66a200c55b dff72efc66
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Thu Oct 13 19:00:13 2022 +0800
Merge remote-tracking branch 'origin/master' into lmh/mppSelectInto
# Conflicts:
# server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
# server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
.../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 2 +-
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 9 +-
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 4 +-
.../resources/conf/iotdb-confignode.properties | 4 +-
.../confignode/client/DataNodeRequestType.java | 4 +
.../AsyncConfigNodeHeartbeatClientPool.java | 4 +-
.../client/async/AsyncDataNodeClientPool.java | 298 +++++++++++
.../AsyncDataNodeHeartbeatClientPool.java | 4 +-
.../async/datanode/AsyncDataNodeClientPool.java | 545 ---------------------
.../async/handlers/AbstractRetryHandler.java | 75 ---
.../client/async/handlers/AsyncClientHandler.java | 203 ++++++++
.../client/async/handlers/ClearCacheHandler.java | 81 ---
.../handlers/ConstructSchemaBlackListHandler.java | 95 ----
.../client/async/handlers/CreateRegionHandler.java | 91 ----
.../DeleteDataForDeleteTimeSeriesHandler.java | 103 ----
.../async/handlers/DeleteTimeSeriesHandler.java | 93 ----
.../async/handlers/FunctionManagementHandler.java | 72 ---
.../InvalidateMatchedSchemaCacheHandler.java | 95 ----
.../async/handlers/LoadConfigurationHandler.java | 82 ----
.../client/async/handlers/MergeHandler.java | 83 ----
.../handlers/RollbackSchemaBlackListHandler.java | 99 ----
.../async/handlers/SetSystemStatusHandler.java | 82 ----
.../client/async/handlers/SetTTLHandler.java | 61 ---
.../async/handlers/TriggerManagementHandler.java | 72 ---
.../handlers/UpdateConfigNodeGroupHandler.java | 66 ---
.../handlers/UpdateRegionRouteMapHandler.java | 63 ---
.../ConfigNodeHeartbeatHandler.java | 2 +-
.../{ => heartbeat}/DataNodeHeartbeatHandler.java | 2 +-
.../handlers/rpc/AbstractAsyncRPCHandler.java | 84 ++++
.../AsyncTSStatusRPCHandler.java} | 64 +--
.../handlers/rpc/DeleteTimeSeriesRPCHandler.java | 84 ++++
.../FetchSchemaBlackListRPCHandler.java} | 66 +--
.../client/async/task/AbstractDataNodeTask.java | 53 --
.../task/ConstructSchemaBlackListDataNodeTask.java | 45 --
.../DeleteDataForDeleteTimeSeriesDataNodeTask.java | 46 --
.../task/FetchSchemaBlackListDataNodeTask.java | 46 --
.../InvalidateMatchedSchemaCacheDataNodeTask.java | 46 --
.../{confignode => }/SyncConfigNodeClientPool.java | 2 +-
.../{datanode => }/SyncDataNodeClientPool.java | 2 +-
.../iotdb/confignode/conf/ConfigNodeConfig.java | 15 +-
.../iotdb/confignode/conf/ConfigNodeConstant.java | 2 +
.../confignode/conf/ConfigNodeRemoveCheck.java | 3 +-
.../confignode/conf/SystemPropertiesUtils.java | 10 +
.../consensus/request/ConfigPhysicalPlan.java | 24 +
.../consensus/request/ConfigPhysicalPlanType.java | 9 +-
.../request/read/GetNodePathsPartitionPlan.java | 1 +
.../consensus/request/read/GetRoutingPlan.java | 99 ++++
...rtitionPlan.java => GetSeriesSlotListPlan.java} | 58 +--
.../request/read/GetTimeSlotListPlan.java | 109 +++++
.../request/write/sync/GetPipeSinkPlan.java | 1 +
...GetPipeSinkPlan.java => PreCreatePipePlan.java} | 25 +-
...GetPipeSinkPlan.java => SetPipeStatusPlan.java} | 41 +-
.../{GetPipeSinkPlan.java => ShowPipePlan.java} | 23 +-
...chemaPartitionResp.java => GetRoutingResp.java} | 40 +-
...rtitionResp.java => GetSeriesSlotListResp.java} | 40 +-
.../consensus/response/GetTimeSlotListResp.java | 59 +++
.../response/PipeResp.java} | 34 +-
.../consensus/response/SchemaPartitionResp.java | 2 +-
.../statemachine/PartitionRegionStateMachine.java | 24 +-
.../confignode/manager/ClusterSchemaManager.java | 51 +-
.../iotdb/confignode/manager/ConfigManager.java | 175 +++++--
.../iotdb/confignode/manager/ConsensusManager.java | 19 +-
.../apache/iotdb/confignode/manager/IManager.java | 76 ++-
.../confignode/manager/PermissionManager.java | 2 +-
.../iotdb/confignode/manager/ProcedureManager.java | 95 +++-
.../iotdb/confignode/manager/SyncManager.java | 98 +++-
.../iotdb/confignode/manager/UDFManager.java | 33 +-
.../iotdb/confignode/manager/load/LoadManager.java | 15 +-
.../iotdb/confignode/manager/node/NodeManager.java | 109 +++--
.../manager/partition/PartitionManager.java | 34 +-
.../iotdb/confignode/persistence/NodeInfo.java | 14 +-
.../persistence/executor/ConfigPlanExecutor.java | 18 +
.../persistence/partition/PartitionInfo.java | 45 +-
.../partition/StorageGroupPartitionTable.java | 43 +-
.../persistence/sync/ClusterSyncInfo.java | 79 ++-
.../procedure/env/ConfigNodeProcedureEnv.java | 205 ++++++--
.../procedure/env/DataNodeRemoveHandler.java | 203 ++++----
.../procedure/impl/CreateTriggerProcedure.java | 1 +
.../procedure/impl/DropTriggerProcedure.java | 1 +
.../impl/{ => node}/AbstractNodeProcedure.java | 4 +-
.../impl/{ => node}/AddConfigNodeProcedure.java | 2 +-
.../impl/{ => node}/RemoveConfigNodeProcedure.java | 2 +-
.../impl/{ => node}/RemoveDataNodeProcedure.java | 10 +-
.../CreateRegionGroupsProcedure.java | 37 +-
.../DeleteStorageGroupProcedure.java | 3 +-
.../DeleteTimeSeriesProcedure.java | 111 ++---
.../{ => statemachine}/RegionMigrateProcedure.java | 43 +-
.../statemachine}/StateMachineProcedure.java | 3 +-
.../impl/sync/AbstractOperatePipeProcedure.java | 142 ++++++
.../procedure/impl/sync/CreatePipeProcedure.java | 146 ++++++
.../procedure/impl/sync/DropPipeProcedure.java | 133 +++++
.../procedure/impl/sync/StartPipeProcedure.java | 132 +++++
.../procedure/impl/sync/StopPipeProcedure.java | 132 +++++
.../procedure/state/sync/OperatePipeState.java | 14 +-
.../procedure/store/ProcedureFactory.java | 44 +-
.../iotdb/confignode/service/ConfigNode.java | 37 +-
.../thrift/ConfigNodeRPCServiceProcessor.java | 156 ++++--
.../request/ConfigPhysicalPlanSerDeTest.java | 96 +++-
.../procedure/entity/SimpleSTMProcedure.java | 2 +-
.../procedure/entity/StuckSTMProcedure.java | 2 +-
.../impl/CreateRegionGroupsProcedureTest.java | 5 +-
.../impl/DeleteStorageGroupProcedureTest.java | 1 +
.../impl/DeleteTimeSeriesProcedureTest.java | 1 +
.../procedure/impl/OperatePipeProcedureTest.java | 122 +++++
.../thrift/ConfigNodeRPCServiceProcessorTest.java | 6 +-
.../org/apache/iotdb/consensus/IStateMachine.java | 5 +-
.../org/apache/iotdb/consensus/common/Peer.java | 26 +-
.../iotdb/consensus/config/ConsensusConfig.java | 22 +-
.../multileader/MultiLeaderConsensus.java | 12 +-
.../multileader/MultiLeaderServerImpl.java | 6 +-
.../service/MultiLeaderRPCServiceProcessor.java | 4 +-
.../ratis/ApplicationStateMachineProxy.java | 37 +-
.../iotdb/consensus/ratis/RatisConsensus.java | 24 +-
.../iotdb/consensus/ratis/SnapshotStorage.java | 53 +-
.../org/apache/iotdb/consensus/ratis/Utils.java | 36 +-
.../consensus/standalone/StandAloneConsensus.java | 11 +-
.../consensus/standalone/StandAloneServerImpl.java | 2 +-
.../multileader/MultiLeaderConsensusTest.java | 7 +-
.../iotdb/consensus/multileader/RecoveryTest.java | 5 +-
.../iotdb/consensus/ratis/RatisConsensusTest.java | 7 +-
.../apache/iotdb/consensus/ratis/SnapshotTest.java | 34 +-
.../apache/iotdb/consensus/ratis/TestUtils.java | 7 +-
.../iotdb/consensus/standalone/RecoveryTest.java | 5 +-
.../standalone/StandAloneConsensusTest.java | 30 +-
docs/UserGuide/API/RestService.md | 2 +-
docs/UserGuide/Data-Concept/Time-Partition.md | 6 +-
.../Maintenance-Tools/Maintenance-Command.md | 2 +-
docs/UserGuide/Operate-Metadata/Storage-Group.md | 3 +
docs/UserGuide/Query-Data/Aggregate-Query.md | 174 +++++++
.../Reference/ConfigNode-Config-Manual.md | 2 +-
docs/UserGuide/Reference/DataNode-Config-Manual.md | 2 +-
docs/UserGuide/UDF-Library/Data-Profiling.md | 10 +-
docs/UserGuide/Write-Data/Load-External-Tsfile.md | 4 +-
docs/zh/UserGuide/API/RestService.md | 2 +-
docs/zh/UserGuide/Data-Concept/Time-Partition.md | 6 +-
.../Maintenance-Tools/Maintenance-Command.md | 6 +-
.../zh/UserGuide/Operate-Metadata/Storage-Group.md | 2 +
docs/zh/UserGuide/Query-Data/Aggregate-Query.md | 168 ++++++-
.../Reference/ConfigNode-Config-Manual.md | 2 +-
.../UserGuide/Reference/DataNode-Config-Manual.md | 2 +-
docs/zh/UserGuide/UDF-Library/Data-Profiling.md | 6 +-
.../UserGuide/Write-Data/Load-External-Tsfile.md | 4 +-
example/trigger/pom.xml | 7 +-
.../iotdb/trigger/ClusterAlertingExample.java | 93 ++++
.../java/org/apache/iotdb/it/env/MppConfig.java | 3 +-
.../iotdb/confignode/IoTDBClusterPartitionIT.java | 147 +++++-
.../org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java | 140 ++++++
.../org/apache/iotdb/db/it/IoTDBDeletionIT.java | 24 +
.../db/it/aggregation/IoTDBTagAggregationIT.java | 511 +++++++++++++++++++
.../IoTDBCountMultiTimesWithDeletionIT.java | 146 ++++++
.../org/apache/iotdb/db/it/sync/IoTDBPipeIT.java | 3 +-
library-udf/pom.xml | 12 +
.../apache/iotdb/library/dprofile/UDTFSample.java | 70 ++-
.../iotdb/library/dprofile/DProfileTests.java | 13 +
.../apache/iotdb/commons/conf/IoTDBConstant.java | 2 +
.../exception/sync/PipeNotExistException.java | 28 +-
.../iotdb/commons/partition/DataPartition.java | 21 +-
.../commons/partition/DataPartitionTable.java | 36 +-
.../commons/partition/SchemaPartitionTable.java | 5 +
.../commons/partition/SeriesPartitionTable.java | 21 +
.../apache/iotdb/commons/path/MeasurementPath.java | 35 ++
.../org/apache/iotdb/commons/path/PartialPath.java | 1 -
.../iotdb/commons/sync/metadata/SyncMetadata.java | 38 +-
.../commons/sync/persistence/SyncLogReader.java | 7 +-
.../apache/iotdb/commons/sync/pipe/PipeInfo.java | 58 ++-
.../apache/iotdb/commons/sync/pipe/PipeStatus.java | 7 +-
.../iotdb/commons/sync/pipe/SyncOperation.java | 2 +
.../iotdb/commons/sync/pipe/TsFilePipeInfo.java | 15 +
.../iotdb/commons/sync/pipesink/IoTDBPipeSink.java | 8 +
.../iotdb/commons/sync/pipesink/PipeSink.java | 20 +
.../apache/iotdb/commons/utils/NodeUrlUtils.java | 6 +-
.../commons/utils/ThriftConfigNodeSerDeUtils.java | 23 +-
pom.xml | 2 +-
.../schemaregion/rocksdb/RSchemaRegion.java | 119 ++---
.../resources/conf/iotdb-datanode.properties | 6 +-
.../apache/iotdb/db/client/ConfigNodeClient.java | 146 +++++-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 4 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 24 +-
.../db/consensus/DataRegionConsensusImpl.java | 1 +
.../db/consensus/SchemaRegionConsensusImpl.java | 1 +
.../statemachine/SchemaRegionStateMachine.java | 1 -
.../org/apache/iotdb/db/engine/StorageEngine.java | 21 +-
.../apache/iotdb/db/engine/StorageEngineV2.java | 13 +-
.../inner/utils/MultiTsFileDeviceIterator.java | 5 +-
.../impl/ReadPointCompactionPerformer.java | 4 +-
.../iotdb/db/engine/cq/ContinuousQueryService.java | 10 +-
.../db/engine/querycontext/QueryDataSource.java | 5 +-
.../iotdb/db/engine/storagegroup/DataRegion.java | 60 ++-
.../db/engine/storagegroup/TsFileResource.java | 49 +-
.../dataregion/StorageGroupManager.java | 6 +-
.../iotdb/db/localconfignode/LocalConfigNode.java | 11 +-
.../iotdb/db/metadata/LocalSchemaProcessor.java | 6 +-
.../db/metadata/cache/DataNodeSchemaCache.java | 3 +
.../iotdb/db/metadata/cache/SchemaCacheEntry.java | 11 +-
.../iotdb/db/metadata/mtree/IMTreeBelowSG.java | 5 +-
.../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 15 +-
.../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 32 +-
.../db/metadata/schemaregion/ISchemaRegion.java | 10 +-
.../schemaregion/SchemaRegionMemoryImpl.java | 66 ++-
.../schemaregion/SchemaRegionSchemaFileImpl.java | 59 ++-
.../apache/iotdb/db/metadata/tag/TagManager.java | 15 +
.../timerangeiterator/AggrWindowIterator.java | 22 +-
.../TimeRangeIteratorFactory.java | 2 +-
.../db/mpp/common/header/ColumnHeaderConstant.java | 2 +-
.../mpp/common/schematree/ClusterSchemaTree.java | 9 +-
.../schematree/node/SchemaMeasurementNode.java | 14 +
.../visitor/SchemaTreeMeasurementVisitor.java | 1 +
.../fragment/FragmentInstanceExecution.java | 4 +
.../operator/process/TagAggregationOperator.java | 233 +++++++++
.../operator/schema/SchemaFetchScanOperator.java | 7 +-
.../schedule/DriverTaskTimeoutSentinelThread.java | 24 +-
.../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 64 ++-
.../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java | 168 +++++--
.../mpp/plan/analyze/ClusterPartitionFetcher.java | 33 --
.../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 13 +-
.../db/mpp/plan/analyze/ExpressionAnalyzer.java | 2 +
.../db/mpp/plan/analyze/IPartitionFetcher.java | 42 +-
.../iotdb/db/mpp/plan/analyze/ISchemaFetcher.java | 2 +
.../plan/analyze/StandalonePartitionFetcher.java | 5 -
.../mpp/plan/analyze/StandaloneSchemaFetcher.java | 12 +-
.../db/mpp/plan/analyze/cache/PartitionCache.java | 11 +-
.../db/mpp/plan/execution/QueryExecution.java | 30 +-
.../config/executor/ClusterConfigTaskExecutor.java | 107 +++-
.../executor/StandaloneConfigTaskExecutor.java | 12 +-
.../config/sys/sync/ShowPipeSinkTask.java | 2 +-
.../execution/config/sys/sync/ShowPipeTask.java | 10 +-
.../iotdb/db/mpp/plan/parser/ASTVisitor.java | 61 ++-
.../db/mpp/plan/planner/LogicalPlanBuilder.java | 143 +++++-
.../db/mpp/plan/planner/LogicalPlanVisitor.java | 13 +-
.../db/mpp/plan/planner/OperatorTreeGenerator.java | 77 ++-
.../db/mpp/plan/planner/SubPlanTypeExtractor.java | 9 +
.../planner/distribution/ExchangeNodeAdder.java | 5 +
.../plan/planner/distribution/SourceRewriter.java | 91 +++-
.../plan/planner/plan/node/PlanGraphPrinter.java | 31 ++
.../mpp/plan/planner/plan/node/PlanNodeType.java | 6 +-
.../db/mpp/plan/planner/plan/node/PlanVisitor.java | 5 +
.../node/metedata/read/SchemaFetchScanNode.java | 19 +-
.../plan/node/process/GroupByLevelNode.java | 21 +-
.../planner/plan/node/process/GroupByTagNode.java | 312 ++++++++++++
.../planner/plan/node/write/DeleteDataNode.java | 9 +-
.../plan/parameter/AggregationDescriptor.java | 4 +-
....java => CrossSeriesAggregationDescriptor.java} | 16 +-
.../statement/component/GroupByTagComponent.java | 26 +-
.../plan/statement/crud/LoadTsFileStatement.java | 29 +-
.../db/mpp/plan/statement/crud/QueryStatement.java | 22 +
.../statement/internal/SchemaFetchStatement.java | 9 +-
.../protocol/influxdb/input/InfluxLineParser.java | 4 +-
.../protocol/influxdb/sql/InfluxDBSqlVisitor.java | 8 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 56 +--
.../db/qp/physical/crud/GroupByTimeFillPlan.java | 6 +-
.../qp/physical/sys/CreateContinuousQueryPlan.java | 4 +-
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 32 +-
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 3 +-
.../{DatetimeUtils.java => DateTimeUtils.java} | 22 +-
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 8 +-
.../iotdb/db/query/context/QueryContext.java | 1 -
.../query/dataset/groupby/GroupByTimeDataSet.java | 2 +-
.../apache/iotdb/db/query/executor/fill/IFill.java | 2 +-
.../iotdb/db/query/executor/fill/LinearFill.java | 6 +-
.../iotdb/db/query/executor/fill/PreviousFill.java | 4 +-
.../db/service/DataNodeServerCommandLine.java | 2 +-
.../iotdb/db/service/RegionMigrateService.java | 8 +-
.../impl/DataNodeInternalRPCServiceImpl.java | 49 +-
.../service/thrift/impl/DataNodeRegionManager.java | 4 +-
.../java/org/apache/iotdb/db/sync/SyncService.java | 190 +++----
.../db/sync/common/ClusterSyncInfoFetcher.java | 144 ++++++
.../iotdb/db/sync/common/ISyncInfoFetcher.java | 10 +-
.../apache/iotdb/db/sync/common/LocalSyncInfo.java | 41 +-
.../iotdb/db/sync/common/LocalSyncInfoFetcher.java | 16 +-
.../db/sync/sender/pipe/ExternalPipeSink.java | 8 +
.../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 6 +-
.../iotdb/db/tools/TsFileResourcePrinter.java | 6 +-
.../db/tools/watermark/WatermarkDetector.java | 4 +-
.../java/org/apache/iotdb/db/utils/QueryUtils.java | 4 +-
.../apache/iotdb/db/utils/sync/SyncPipeUtil.java | 74 ++-
.../timerangeiterator/AggrWindowIterator.java | 18 +-
.../TimeRangeIteratorFactory.java | 2 +-
.../ReadPointCompactionPerformerTest.java | 266 ++++++++++
.../db/metadata/cache/DataNodeSchemaCacheTest.java | 22 +-
.../iotdb/db/metadata/mtree/MTreeBelowSGTest.java | 16 +-
.../db/metadata/path/MeasurementPathTest.java | 75 ++-
.../mpp/execution/operator/OperatorMemoryTest.java | 7 +-
.../schema/SchemaFetchScanOperatorTest.java | 3 +-
.../plan/analyze/AggregationDescriptorTest.java | 19 +-
.../iotdb/db/mpp/plan/analyze/AnalyzeTest.java | 2 +-
.../mpp/plan/analyze/FakePartitionFetcherImpl.java | 5 -
.../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 9 +
.../db/mpp/plan/parser/StatementGeneratorTest.java | 16 +
.../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 93 +++-
.../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 20 +-
.../distribution/AggregationDistributionTest.java | 24 +-
.../metadata/read/SchemaFetchScanNodeTest.java | 7 +-
.../node/process/GroupByLevelNodeSerdeTest.java | 4 +-
.../plan/node/process/GroupByTagNodeSerdeTest.java | 122 +++++
.../db/qp/utils/DatetimeQueryDataSetUtilsTest.java | 116 ++---
.../DataNodeInternalRPCServiceImplTest.java | 8 +-
.../sync/receiver/manager/LocalSyncInfoTest.java | 10 +-
spark-iotdb-connector/pom.xml | 4 +-
spark-tsfile/pom.xml | 4 +-
.../src/main/thrift/confignode.thrift | 85 +++-
.../src/main/thrift/mutlileader.thrift | 2 +
thrift/src/main/thrift/datanode.thrift | 20 +
.../iotdb/tsfile/file/metadata/ChunkMetadata.java | 5 +-
.../iotdb/tsfile/utils/ReadWriteIOUtils.java | 2 +-
.../tsfile/file/metadata/ChunkMetadataTest.java | 70 +++
305 files changed, 8727 insertions(+), 3993 deletions(-)
diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
index ea344ca9fe,8e346a03a8..dbefd62034
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
@@@ -416,20 -437,22 +449,39 @@@ public class Analysis
this.deviceViewOutputExpressions = deviceViewOutputExpressions;
}
+ public IntoDeviceMeasurementDescriptor getIntoDeviceMeasurementDescriptor() {
+ return intoDeviceMeasurementDescriptor;
+ }
+
+ public void setIntoDeviceMeasurementDescriptor(
+ IntoDeviceMeasurementDescriptor intoDeviceMeasurementDescriptor) {
+ this.intoDeviceMeasurementDescriptor = intoDeviceMeasurementDescriptor;
+ }
+
+ public IntoPathDescriptor getIntoPathDescriptor() {
+ return intoPathDescriptor;
+ }
+
+ public void setIntoPathDescriptor(IntoPathDescriptor intoPathDescriptor) {
+ this.intoPathDescriptor = intoPathDescriptor;
+ }
++
+ public List<String> getTagKeys() {
+ return tagKeys;
+ }
+
+ public void setTagKeys(List<String> tagKeys) {
+ this.tagKeys = tagKeys;
+ }
+
+ public Map<List<String>, LinkedHashMap<Expression, List<Expression>>>
+ getTagValuesToGroupedTimeseriesOperands() {
+ return tagValuesToGroupedTimeseriesOperands;
+ }
+
+ public void setTagValuesToGroupedTimeseriesOperands(
+ Map<List<String>, LinkedHashMap<Expression, List<Expression>>>
+ tagValuesToGroupedTimeseriesOperands) {
+ this.tagValuesToGroupedTimeseriesOperands = tagValuesToGroupedTimeseriesOperands;
+ }
}
diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
index 30d945044a,92a70eddbf..aa71a65347
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
@@@ -49,11 -50,11 +50,13 @@@ import org.apache.iotdb.db.mpp.plan.Coo
import org.apache.iotdb.db.mpp.plan.execution.ExecutionResult;
import org.apache.iotdb.db.mpp.plan.expression.Expression;
import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+ import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+ import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FillDescriptor;
import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
+import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.IntoDeviceMeasurementDescriptor;
+import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.IntoPathDescriptor;
import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.OrderByParameter;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index dc28cae4e2,e93ed56878..9e54138d82
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@@ -67,10 -67,9 +67,11 @@@ import org.apache.iotdb.db.mpp.plan.sta
import org.apache.iotdb.db.mpp.plan.statement.component.FillPolicy;
import org.apache.iotdb.db.mpp.plan.statement.component.FromComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.GroupByLevelComponent;
+ import org.apache.iotdb.db.mpp.plan.statement.component.GroupByTagComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.GroupByTimeComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.HavingCondition;
+import org.apache.iotdb.db.mpp.plan.statement.component.IntoComponent;
+import org.apache.iotdb.db.mpp.plan.statement.component.IntoItem;
import org.apache.iotdb.db.mpp.plan.statement.component.OrderByComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.Ordering;
import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
index d0c05930be,a4011d0ed4..aea3c370d5
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
@@@ -30,9 -30,9 +30,10 @@@ import org.apache.iotdb.db.mpp.plan.sta
import org.apache.iotdb.db.mpp.plan.statement.component.FillComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.FromComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.GroupByLevelComponent;
+ import org.apache.iotdb.db.mpp.plan.statement.component.GroupByTagComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.GroupByTimeComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.HavingCondition;
+import org.apache.iotdb.db.mpp.plan.statement.component.IntoComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.OrderByComponent;
import org.apache.iotdb.db.mpp.plan.statement.component.Ordering;
import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
@@@ -95,9 -95,9 +96,12 @@@ public class QueryStatement extends Sta
// `GROUP BY LEVEL` clause
protected GroupByLevelComponent groupByLevelComponent;
+ // `GROUP BY TAG` clause
+ protected GroupByTagComponent groupByTagComponent;
+
+ // `INTO` clause
+ protected IntoComponent intoComponent;
+
public QueryStatement() {
this.statementType = StatementType.QUERY;
}