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

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

commit bd3b343636bd3b7128b35487af2702d80877e151
Author: shuwenwei <[email protected]>
AuthorDate: Fri Apr 17 10:25:21 2026 +0800

    add abstract methods
---
 .../relational/ColumnTransformerBuilder.java       |  1 +
 .../plan/planner/TableOperatorGenerator.java       | 47 +++++-----------------
 .../planner/DataNodeTableOperatorGenerator.java    | 42 ++++++++++---------
 .../plan/relational/sql/ast/DeleteDevice.java      |  3 +-
 .../schemaregion/impl/SchemaRegionMemoryImpl.java  |  6 +--
 .../sink/SinkOperatorDownStreamNodeIdTest.java     |  4 +-
 6 files changed, 41 insertions(+), 62 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java
index 3349bffd332..55d115c66c1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java
@@ -199,6 +199,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
 import org.apache.iotdb.udf.api.customizer.analysis.ScalarFunctionAnalysis;
 import org.apache.iotdb.udf.api.customizer.parameter.FunctionArguments;
 import org.apache.iotdb.udf.api.relational.ScalarFunction;
+
 import org.apache.tsfile.common.conf.TSFileConfig;
 import org.apache.tsfile.common.regexp.LikePattern;
 import org.apache.tsfile.enums.TSDataType;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
index 0893351a327..87e4266c04e 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
@@ -103,8 +103,8 @@ import 
org.apache.iotdb.db.calc_commons.plan.relational.planner.CastToStringLite
 import 
org.apache.iotdb.db.calc_commons.plan.relational.planner.CastToTimestampLiteralVisitor;
 import 
org.apache.iotdb.db.calc_commons.transformation.dag.column.ColumnTransformer;
 import 
org.apache.iotdb.db.calc_commons.transformation.dag.column.leaf.LeafColumnTransformer;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.sql.SemanticException;
+import org.apache.iotdb.db.node_commons.common.SessionInfo;
 import 
org.apache.iotdb.db.node_commons.plan.planner.plan.node.ICoreQueryPlanVisitor;
 import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
@@ -160,7 +160,6 @@ import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression;
 import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Literal;
 import 
org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SymbolReference;
 import 
org.apache.iotdb.db.node_commons.plan.relational.type.InternalTypeManager;
-import 
org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext;
 import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider;
 import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanContext;
 import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
@@ -185,7 +184,6 @@ import 
org.apache.tsfile.read.common.block.column.LongColumn;
 import org.apache.tsfile.read.common.type.Type;
 import org.apache.tsfile.utils.Binary;
 
-import java.io.File;
 import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -316,15 +314,14 @@ public abstract class TableOperatorGenerator
 
     ColumnTransformerBuilder visitor = new ColumnTransformerBuilder();
 
-    FragmentInstanceContext fragmentInstanceContext =
-        context.getDriverContext().getFragmentInstanceContext();
+    SessionInfo sessionInfo = getSessionInfo(context);
     ColumnTransformer filterOutputTransformer =
         predicate
             .map(
                 p -> {
                   ColumnTransformerBuilder.Context 
filterColumnTransformerContext =
                       new ColumnTransformerBuilder.Context(
-                          fragmentInstanceContext.getSessionInfo(),
+                          sessionInfo,
                           filterLeafColumnTransformerList,
                           inputLocations,
                           filterExpressionColumnTransformerMap,
@@ -333,8 +330,7 @@ public abstract class TableOperatorGenerator
                           ImmutableList.of(),
                           0,
                           context.getTypeProvider(),
-                          metadata
-                      );
+                          metadata);
 
                   return visitor.process(p, filterColumnTransformerContext);
                 })
@@ -352,7 +348,7 @@ public abstract class TableOperatorGenerator
 
     ColumnTransformerBuilder.Context projectColumnTransformerContext =
         new ColumnTransformerBuilder.Context(
-            fragmentInstanceContext.getSessionInfo(),
+            sessionInfo,
             projectLeafColumnTransformerList,
             inputLocations,
             projectExpressionColumnTransformerMap,
@@ -361,8 +357,7 @@ public abstract class TableOperatorGenerator
             filterOutputDataTypes,
             inputLocations.size(),
             context.getTypeProvider(),
-            metadata
-        );
+            metadata);
 
     for (Expression expression : projectExpressions) {
       projectOutputTransformerList.add(
@@ -854,29 +849,18 @@ public abstract class TableOperatorGenerator
         sortItemDataTypeList,
         context.getTypeProvider());
 
-    String filePrefix =
-        getSortTmpDir()
-            + File.separator
-            + 
operatorContext.getDriverContext().getFragmentInstanceContext().getId().getFullId()
-            + File.separator
-            + operatorContext.getDriverContext().getPipelineId()
-            + File.separator;
-
-    context.getDriverContext().setHaveTmpFile(true);
-    
context.getDriverContext().getFragmentInstanceContext().setMayHaveTmpFile(true);
-
     Operator child = node.getChild().accept(this, context);
 
     return new TableSortOperator(
         operatorContext,
         child,
         dataTypes,
-        filePrefix,
+        getSortTmpDir(operatorContext),
         getComparatorForTable(
             node.getOrderingScheme().getOrderingList(), sortItemIndexList, 
sortItemDataTypeList));
   }
 
-  protected abstract String getSortTmpDir();
+  protected abstract String getSortTmpDir(OperatorContext operatorContext);
 
   @Override
   public Operator visitTopK(TopKNode node, LocalExecutionPlanContext context) {
@@ -965,24 +949,13 @@ public abstract class TableOperatorGenerator
         sortItemDataTypeList,
         context.getTypeProvider());
 
-    String filePrefix =
-        IoTDBDescriptor.getInstance().getConfig().getSortTmpDir()
-            + File.separator
-            + 
operatorContext.getDriverContext().getFragmentInstanceContext().getId().getFullId()
-            + File.separator
-            + operatorContext.getDriverContext().getPipelineId()
-            + File.separator;
-
-    context.getDriverContext().setHaveTmpFile(true);
-    
context.getDriverContext().getFragmentInstanceContext().setMayHaveTmpFile(true);
-
     Operator child = node.getChild().accept(this, context);
 
     return new TableStreamSortOperator(
         operatorContext,
         child,
         dataTypes,
-        filePrefix,
+        getSortTmpDir(operatorContext),
         getComparatorForTable(
             node.getOrderingScheme().getOrderingList(), sortItemIndexList, 
sortItemDataTypeList),
         getComparatorForTable(
@@ -2464,4 +2437,6 @@ public abstract class TableOperatorGenerator
         1000,
         Optional.empty());
   }
+
+  protected abstract SessionInfo getSessionInfo(LocalExecutionPlanContext 
context);
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
index 5cd788833f3..5d33c254838 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
@@ -14,8 +14,6 @@
 
 package org.apache.iotdb.db.queryengine.plan.planner;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
 import org.apache.iotdb.common.rpc.thrift.TEndPoint;
 import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.IllegalPathException;
@@ -38,6 +36,7 @@ import 
org.apache.iotdb.db.calc_commons.transformation.dag.column.leaf.LeafColum
 import 
org.apache.iotdb.db.calc_commons.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.sql.SemanticException;
+import org.apache.iotdb.db.node_commons.common.SessionInfo;
 import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNode;
 import 
org.apache.iotdb.db.node_commons.plan.planner.plan.parameter.InputLocation;
 import org.apache.iotdb.db.node_commons.plan.relational.planner.Symbol;
@@ -58,7 +57,6 @@ import 
org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannel
 import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISinkHandle;
 import 
org.apache.iotdb.db.queryengine.execution.exchange.sink.ShuffleSinkHandle;
 import org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle;
-import 
org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext;
 import 
org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager;
 import org.apache.iotdb.db.queryengine.execution.operator.EmptyDataOperator;
 import 
org.apache.iotdb.db.queryengine.execution.operator.ExplainAnalyzeOperator;
@@ -129,6 +127,9 @@ import 
org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchem
 import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache;
 import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils;
 import org.apache.iotdb.db.utils.TimestampPrecisionUtils;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import org.apache.tsfile.common.conf.TSFileDescriptor;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.IDeviceID;
@@ -151,6 +152,8 @@ import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 
 import javax.validation.constraints.NotNull;
+
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -203,8 +206,15 @@ public class DataNodeTableOperatorGenerator extends 
TableOperatorGenerator
   }
 
   @Override
-  protected String getSortTmpDir() {
-    return IoTDBDescriptor.getInstance().getConfig().getSortTmpDir();
+  protected String getSortTmpDir(OperatorContext operatorContext) {
+    operatorContext.getDriverContext().setHaveTmpFile(true);
+    
operatorContext.getDriverContext().getFragmentInstanceContext().setMayHaveTmpFile(true);
+    return IoTDBDescriptor.getInstance().getConfig().getSortTmpDir()
+        + File.separator
+        + 
operatorContext.getDriverContext().getFragmentInstanceContext().getId().getFullId()
+        + File.separator
+        + operatorContext.getDriverContext().getPipelineId()
+        + File.separator;
   }
 
   @Override
@@ -1143,15 +1153,7 @@ public class DataNodeTableOperatorGenerator extends 
TableOperatorGenerator
     return new InformationSchemaTableScanOperator(
         operatorContext,
         node.getPlanNodeId(),
-        getSupplier(
-            operatorContext,
-            dataTypes,
-            context
-                .getDriverContext()
-                .getFragmentInstanceContext()
-                .getSessionInfo()
-                .getUserEntity(),
-            node));
+        getSupplier(operatorContext, dataTypes, 
getSessionInfo(context).getUserEntity(), node));
   }
 
   @Override
@@ -1232,8 +1234,6 @@ public class DataNodeTableOperatorGenerator extends 
TableOperatorGenerator
 
     // In "count" we have to reuse filter operator per "next"
     final List<LeafColumnTransformer> filterLeafColumnTransformerList = new 
ArrayList<>();
-    FragmentInstanceContext fragmentInstanceContext =
-        context.getDriverContext().getFragmentInstanceContext();
     return new SchemaCountOperator<>(
         node.getPlanNodeId(),
         context
@@ -1255,7 +1255,7 @@ public class DataNodeTableOperatorGenerator extends 
TableOperatorGenerator
                         .process(
                             node.getTagFuzzyPredicate(),
                             new ColumnTransformerBuilder.Context(
-                                fragmentInstanceContext.getSessionInfo(),
+                                getSessionInfo(context),
                                 filterLeafColumnTransformerList,
                                 makeLayout(Collections.singletonList(node)),
                                 new HashMap<>(),
@@ -1264,8 +1264,7 @@ public class DataNodeTableOperatorGenerator extends 
TableOperatorGenerator
                                 ImmutableList.of(),
                                 0,
                                 context.getTypeProvider(),
-                                metadata
-                            )),
+                                metadata)),
                     columnSchemaList,
                     database,
                     table)
@@ -2122,4 +2121,9 @@ public class DataNodeTableOperatorGenerator extends 
TableOperatorGenerator
 
     return OptimizeType.NOOP;
   }
+
+  @Override
+  protected SessionInfo getSessionInfo(LocalExecutionPlanContext context) {
+    return 
context.getDriverContext().getFragmentInstanceContext().getSessionInfo();
+  }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
index a942571f66b..1707f4d7acc 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java
@@ -233,8 +233,7 @@ public class DeleteDevice extends AbstractTraverseDevice {
                     ImmutableList.of(),
                     0,
                     mockTypeProvider,
-                    metadata
-                ))
+                    metadata))
             : null;
 
     return new DeviceBlackListConstructor(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
index 63b81714271..3c081f21903 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java
@@ -1573,8 +1573,7 @@ public class SchemaRegionMemoryImpl implements 
ISchemaRegion {
                     ImmutableList.of(),
                     0,
                     mockTypeProvider,
-                    metadata
-                ))
+                    metadata))
             : null;
 
     final List<TSDataType> filterOutputDataTypes =
@@ -1601,8 +1600,7 @@ public class SchemaRegionMemoryImpl implements 
ISchemaRegion {
             filterOutputDataTypes,
             inputLocations.size(),
             mockTypeProvider,
-            metadata
-        );
+            metadata);
 
     final List<String> attributeNames =
         updateNode.getAssignments().stream()
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java
index 57fa76fb2d2..81ec8fa58fb 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java
@@ -40,6 +40,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
 import 
org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl;
 import org.apache.iotdb.db.storageengine.dataregion.DataRegion;
 import org.apache.iotdb.mpp.rpc.thrift.TFragmentInstanceId;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -96,7 +97,8 @@ public class SinkOperatorDownStreamNodeIdTest {
     LocalExecutionPlanContext context =
         createLocalExecutionPlanContext(
             new TypeProvider(), "query_name_sink_operator_downstream_id_1", 
10001);
-    DataNodeTableOperatorGenerator tableOperatorGenerator = new 
DataNodeTableOperatorGenerator(metadata);
+    DataNodeTableOperatorGenerator tableOperatorGenerator =
+        new DataNodeTableOperatorGenerator(metadata);
     Mockito.when(mockedPlanNode.accept(tableOperatorGenerator, context))
         .thenReturn(Mockito.mock(Operator.class));
 

Reply via email to