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

jiangtian pushed a commit to branch TableModelIngestion
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit b2fef2ca40cba553f3b4947fe22cfd2fff4f10c9
Merge: f09ad546ee4 bbb7846f4ce
Author: jt2594838 <[email protected]>
AuthorDate: Tue Jun 18 14:21:10 2024 +0800

    Merge branch 'ty/TableModelGrammar' into TableModelIngestion
    
    # Conflicts:
    #       
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java

 .../it/partition/IoTDBPartitionGetterIT.java       |  19 +-
 .../consensus/request/ConfigPhysicalPlan.java      |   4 +
 .../consensus/request/ConfigPhysicalPlanType.java  |   1 +
 .../request/write/table/AddTableColumnPlan.java    |  93 ++++++
 .../iotdb/confignode/manager/ConfigManager.java    |  37 ++-
 .../iotdb/confignode/manager/ProcedureManager.java |  54 ++++
 .../manager/partition/PartitionManager.java        |  27 +-
 .../manager/schema/ClusterSchemaManager.java       |  64 +++-
 .../persistence/executor/ConfigPlanExecutor.java   |   3 +
 .../persistence/schema/ClusterSchemaInfo.java      |  36 +++
 .../confignode/persistence/schema/ConfigMTree.java |  39 ++-
 .../impl/schema/table/AddTableColumnProcedure.java | 329 +++++++++++++++++++++
 .../state/schema/AddTableColumnState.java}         |  18 +-
 .../procedure/store/ProcedureFactory.java          |   6 +
 .../confignode/procedure/store/ProcedureType.java  |   2 +
 .../thrift/ConfigNodeRPCServiceProcessor.java      |   6 +
 .../hash/DeviceGroupHashExecutorManualTest.java    |  13 +-
 .../iotdb/db/protocol/client/ConfigNodeClient.java |   7 +
 .../protocol/thrift/impl/ClientRPCServiceImpl.java |  23 +-
 .../impl/DataNodeInternalRPCServiceImpl.java       |  22 ++
 .../common/schematree/ClusterSchemaTree.java       |  17 +-
 .../queryengine/common/schematree/ISchemaTree.java |   9 +-
 .../db/queryengine/plan/analyze/Analysis.java      |  13 +-
 .../queryengine/plan/analyze/AnalyzeVisitor.java   |  52 ++--
 .../plan/analyze/ClusterPartitionFetcher.java      |  31 +-
 .../plan/analyze/ExpressionAnalyzer.java           |   5 +-
 .../queryengine/plan/analyze/TemplatedAnalyze.java |  15 +-
 .../analyze/cache/partition/PartitionCache.java    |  90 +++---
 .../cache/partition/StorageGroupCacheResult.java   |  16 +-
 .../execution/config/TableConfigTaskVisitor.java   |   3 +-
 .../config/executor/ClusterConfigTaskExecutor.java |  61 +++-
 .../config/executor/IConfigTaskExecutor.java       |   9 +
 .../relational/AlterTableAddColumnTask.java        |  96 ++++++
 .../memory/StatementMemorySourceVisitor.java       |   4 +
 .../TableModelStatementMemorySourceContext.java}   |  24 +-
 .../TableModelStatementMemorySourceVisitor.java    |  94 ++++++
 .../db/queryengine/plan/parser/ASTVisitor.java     |   7 +-
 .../plan/planner/distribution/SourceRewriter.java  |  16 +-
 .../plan/planner/plan/node/PlanGraphPrinter.java   |  54 ++++
 .../node/metedata/write/ActivateTemplateNode.java  |   4 +-
 .../node/metedata/write/AlterTimeSeriesNode.java   |   2 +-
 .../metedata/write/BatchActivateTemplateNode.java  |   4 +-
 .../write/CreateAlignedTimeSeriesNode.java         |   4 +-
 .../metedata/write/CreateMultiTimeSeriesNode.java  |   4 +-
 .../node/metedata/write/CreateTimeSeriesNode.java  |   2 +-
 .../write/InternalBatchActivateTemplateNode.java   |   4 +-
 .../write/InternalCreateMultiTimeSeriesNode.java   |   4 +-
 .../write/InternalCreateTimeSeriesNode.java        |   4 +-
 .../metedata/write/view/CreateLogicalViewNode.java |   2 +-
 .../planner/plan/node/write/DeleteDataNode.java    |   3 +-
 .../planner/plan/node/write/InsertRowNode.java     |   3 +-
 .../planner/plan/node/write/InsertRowsNode.java    |   2 +-
 .../plan/node/write/InsertRowsOfOneDeviceNode.java |   3 +-
 .../planner/plan/node/write/InsertTabletNode.java  |   3 +-
 .../plan/relational/analyzer/Analysis.java         |  20 +-
 .../relational/analyzer/StatementAnalyzer.java     |   3 +-
 .../relational/cost/CachingTableStatsProvider.java |  51 ----
 .../plan/relational/cost/ColumnStatistics.java     | 156 ----------
 .../plan/relational/cost/DoubleRange.java          | 104 -------
 .../queryengine/plan/relational/cost/Estimate.java |  84 ------
 .../plan/relational/cost/StatsUtil.java            |  43 ---
 .../plan/relational/cost/TableStatistics.java      | 112 -------
 .../plan/relational/cost/TableStatsProvider.java   |  20 --
 .../relational/metadata/TableMetadataImpl.java     |   2 +-
 .../plan/relational/planner/LogicalPlanner.java    |  16 +-
 .../relational/planner/RelationalModelPlanner.java |  19 +-
 .../planner/optimizations/IndexScan.java           |  71 +++--
 .../plan/relational/sql/ast/ColumnDefinition.java  |  20 +-
 .../plan/relational/sql/parser/AstBuilder.java     |  21 +-
 .../plan/scheduler/load/LoadTsFileScheduler.java   |   8 +-
 .../metadata/CountTimeSlotListStatement.java       |   7 +-
 .../statement/metadata/GetRegionIdStatement.java   |   7 +-
 .../metadata/GetTimeSlotListStatement.java         |   7 +-
 .../db/schemaengine/table/DataNodeTableCache.java  |  64 ++++
 .../iotdb/db/schemaengine/table/ITableCache.java   |  12 +
 .../plan/analyze/FakePartitionFetcherImpl.java     |   2 +-
 .../plan/analyze/cache/PartitionCacheTest.java     | 119 +++++---
 .../planner/node/write/WritePlanNodeSplitTest.java |  19 +-
 .../iotdb/commons/partition/DataPartition.java     |  41 ++-
 .../commons/partition/DataPartitionQueryParam.java |  20 +-
 .../apache/iotdb/commons/partition/Partition.java  |   6 +-
 .../iotdb/commons/partition/SchemaPartition.java   |  12 +-
 .../executor/SeriesPartitionExecutor.java          |   7 +
 .../partition/executor/hash/APHashExecutor.java    |  33 +++
 .../partition/executor/hash/BKDRHashExecutor.java  |  24 ++
 .../partition/executor/hash/JSHashExecutor.java    |  23 ++
 .../partition/executor/hash/SDBMHashExecutor.java  |  23 ++
 .../apache/iotdb/commons/path/PathPatternTree.java |  16 +-
 .../schema/table/AlterTableOperationType.java}     |  26 +-
 .../apache/iotdb/commons/schema/table/TsTable.java |  14 +
 .../schema/table/TsTableInternalRPCType.java       |  12 +-
 .../table/column/TsTableColumnSchemaUtil.java      |  37 +++
 .../org/apache/iotdb/commons/utils/PathUtils.java  |   5 +-
 .../partition/executor/HashExecutorTest.java       |  63 ++++
 .../iotdb/commons/path/PathPatternTreeTest.java    |   5 +-
 .../src/main/thrift/confignode.thrift              |  17 +-
 96 files changed, 1858 insertions(+), 980 deletions(-)

diff --cc 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
index 33247de6a9e,dcf7f36021b..f33266ae0c6
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
@@@ -2736,22 -2783,17 +2747,22 @@@ public class AnalyzeVisitor extends Sta
        InsertRowsOfOneDeviceStatement realStatement =
            (InsertRowsOfOneDeviceStatement) realInsertStatement;
        DataPartitionQueryParam dataPartitionQueryParam = new 
DataPartitionQueryParam();
-       
dataPartitionQueryParam.setDevicePath(realStatement.getDevicePath().getFullPath());
+       
dataPartitionQueryParam.setDeviceID(realStatement.getDevicePath().getIDeviceIDAsFullDevice());
        
dataPartitionQueryParam.setTimePartitionSlotList(realStatement.getTimePartitionSlots());
  
 -      return getAnalysisForWriting(
 +      getAnalysisForWriting(
            analysis,
            Collections.singletonList(dataPartitionQueryParam),
 -          context.getSession().getUserName());
 +          context.getSession().getUserName(),
 +          partitionFetcher::getOrCreateDataPartition);
      } else {
 -      return computeAnalysisForInsertRows(
 -          analysis, (InsertRowsStatement) realInsertStatement, 
context.getSession().getUserName());
 +      computeAnalysisForInsertRows(
 +          analysis,
 +          (InsertRowsStatement) realInsertStatement,
 +          context.getSession().getUserName(),
 +          partitionFetcher::getOrCreateDataPartition);
      }
 +    return analysis;
    }
  
    @Override
diff --cc 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
index 8a737554b38,4d019248d86..e8f899a43d0
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
@@@ -624,18 -617,14 +629,19 @@@ public class Analysis implements IAnaly
      //            && ((QueryStatement) statement).isAggregationQuery());
    }
  
 +  @Override
 +  public void setDataPartitionInfo(DataPartition dataPartition) {
 +    this.dataPartition = dataPartition;
 +  }
 +
    @Override
    public TsBlock constructResultForMemorySource(MPPQueryContext context) {
-     StatementMemorySource source =
-         new StatementMemorySource(
-             new TsBlock(0), respDatasetHeader == null ? EMPTY_HEADER : 
respDatasetHeader);
-     setRespDatasetHeader(source.getDatasetHeader());
-     return source.getTsBlock();
+     requireNonNull(getStatement(), "root statement is analysis is null");
+     StatementMemorySource memorySource =
+         new TableModelStatementMemorySourceVisitor()
+             .process(getStatement(), new 
TableModelStatementMemorySourceContext(context, this));
+     setRespDatasetHeader(memorySource.getDatasetHeader());
+     return memorySource.getTsBlock();
    }
  
    @Override

Reply via email to