You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by we...@apache.org on 2026/03/24 07:44:03 UTC

(iotdb) branch showQ-dev/1.3 created (now e9bbe68eee0)

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

weihao pushed a change to branch showQ-dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at e9bbe68eee0 add

This branch includes the following new commits:

     new e9bbe68eee0 add

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iotdb) 01/01: add

Posted by we...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

weihao pushed a commit to branch showQ-dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit e9bbe68eee029512d3a7477c3ae513252097001c
Author: Weihao Li <18...@163.com>
AuthorDate: Tue Mar 24 15:43:14 2026 +0800

    add
    
    Signed-off-by: Weihao Li <18...@163.com>
---
 .../main/java/org/apache/iotdb/db/audit/AuditLogger.java |  2 +-
 .../protocol/legacy/IoTDBLegacyPipeReceiverAgent.java    |  2 +-
 .../receiver/protocol/legacy/loader/DeletionLoader.java  |  2 +-
 .../receiver/protocol/legacy/loader/TsFileLoader.java    |  2 +-
 .../db/pipe/sink/protocol/writeback/WriteBackSink.java   |  2 +-
 .../apache/iotdb/db/protocol/session/SessionManager.java |  6 +++++-
 .../iotdb/db/queryengine/common/MPPQueryContext.java     |  4 ++++
 .../apache/iotdb/db/queryengine/common/SessionInfo.java  | 16 +++++++++++++---
 .../queryengine/common/header/ColumnHeaderConstant.java  |  8 ++++++--
 .../execution/fragment/FragmentInstanceContext.java      |  4 ++--
 .../execution/operator/source/ShowQueriesOperator.java   |  2 ++
 .../db/queryengine/plan/execution/IQueryExecution.java   |  4 ++++
 .../db/queryengine/plan/execution/QueryExecution.java    | 10 ++++++++++
 .../plan/execution/config/ConfigExecution.java           | 10 ++++++++++
 .../plan/planner/plan/node/source/ShowQueriesNode.java   | 13 +++++++------
 .../db/service/metrics/IoTDBInternalLocalReporter.java   |  2 +-
 .../load/active/ActiveLoadTsFileLoader.java              |  2 +-
 .../execution/operator/MergeSortOperatorTest.java        | 10 ++++++++++
 .../iotdb/db/queryengine/plan/analyze/AnalyzeTest.java   |  2 +-
 .../plan/optimization/LimitOffsetPushDownTest.java       |  2 +-
 .../plan/planner/FragmentInstanceSerdeTest.java          |  3 ++-
 .../plan/planner/logical/LogicalPlannerTestUtil.java     |  2 +-
 22 files changed, 85 insertions(+), 25 deletions(-)

diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java
index ed3efee9a1b..5019d3ab8fe 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/AuditLogger.java
@@ -64,7 +64,7 @@ public class AuditLogger {
   private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
   private static final List<AuditLogStorage> auditLogStorageList = config.getAuditLogStorage();
   private static final SessionInfo sessionInfo =
-      new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault());
+      new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), "");
 
   private static final List<AuditLogOperation> auditLogOperationList =
       config.getAuditLogOperation();
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
index 32eade04262..ae7ab22308a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java
@@ -151,7 +151,7 @@ public class IoTDBLegacyPipeReceiverAgent {
               .executeForTreeModel(
                   statement,
                   queryId,
-                  new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault()),
+                  new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), ""),
                   "",
                   partitionFetcher,
                   schemaFetcher,
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java
index fe1255ce8c3..019dfb7718b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java
@@ -64,7 +64,7 @@ public class DeletionLoader implements ILoader {
               .executeForTreeModel(
                   statement,
                   queryId,
-                  new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault()),
+                  new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), ""),
                   "",
                   PARTITION_FETCHER,
                   SCHEMA_FETCHER,
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java
index e181ec1d592..f88510a0ca8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java
@@ -67,7 +67,7 @@ public class TsFileLoader implements ILoader {
               .executeForTreeModel(
                   statement,
                   queryId,
-                  new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault()),
+                  new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), ""),
                   "",
                   PARTITION_FETCHER,
                   SCHEMA_FETCHER,
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java
index 7aa54f1120d..80c9e09f9ac 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java
@@ -187,7 +187,7 @@ public class WriteBackSink implements PipeConnector {
         .executeForTreeModel(
             new PipeEnrichedStatement(statement),
             SessionManager.getInstance().requestQueryId(),
-            new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault()),
+            new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), ""),
             "",
             ClusterPartitionFetcher.getInstance(),
             ClusterSchemaFetcher.getInstance(),
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java
index e32034c9ab0..c062726e4e4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java
@@ -373,7 +373,11 @@ public class SessionManager implements SessionManagerMBean {
 
   public SessionInfo getSessionInfo(IClientSession session) {
     return new SessionInfo(
-        session.getId(), session.getUsername(), session.getZoneId(), session.getClientVersion());
+        session.getId(),
+        session.getUsername(),
+        session.getZoneId(),
+        session.getClientVersion(),
+        session.getClientAddress());
   }
 
   @Override
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java
index fc457ab9ce4..aca7ba1edb1 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java
@@ -402,4 +402,8 @@ public class MPPQueryContext {
   public void setUserQuery(boolean userQuery) {
     this.userQuery = userQuery;
   }
+
+  public String getClientHostName() {
+    return session.getCliHostname();
+  }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java
index ddfe8da6a7c..dee94543cd6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java
@@ -33,20 +33,24 @@ public class SessionInfo {
   private final long sessionId;
   private final String userName;
   private final ZoneId zoneId;
+  private final String cliHostname;
 
   private ClientVersion version = ClientVersion.V_1_0;
 
-  public SessionInfo(long sessionId, String userName, ZoneId zoneId) {
+  public SessionInfo(long sessionId, String userName, ZoneId zoneId, String cliHostname) {
     this.sessionId = sessionId;
     this.userName = userName;
     this.zoneId = zoneId;
+    this.cliHostname = cliHostname;
   }
 
-  public SessionInfo(long sessionId, String userName, ZoneId zoneId, ClientVersion version) {
+  public SessionInfo(
+      long sessionId, String userName, ZoneId zoneId, ClientVersion version, String cliHostname) {
     this.sessionId = sessionId;
     this.userName = userName;
     this.zoneId = zoneId;
     this.version = version;
+    this.cliHostname = cliHostname;
   }
 
   public long getSessionId() {
@@ -65,16 +69,22 @@ public class SessionInfo {
     return version;
   }
 
+  public String getCliHostname() {
+    return cliHostname;
+  }
+
   public static SessionInfo deserializeFrom(ByteBuffer buffer) {
     long sessionId = ReadWriteIOUtils.readLong(buffer);
     String userName = ReadWriteIOUtils.readString(buffer);
     ZoneId zoneId = ZoneId.of(Objects.requireNonNull(ReadWriteIOUtils.readString(buffer)));
-    return new SessionInfo(sessionId, userName, zoneId);
+    String cliHostname = ReadWriteIOUtils.readString(buffer);
+    return new SessionInfo(sessionId, userName, zoneId, cliHostname);
   }
 
   public void serialize(DataOutputStream stream) throws IOException {
     ReadWriteIOUtils.write(sessionId, stream);
     ReadWriteIOUtils.write(userName, stream);
     ReadWriteIOUtils.write(zoneId.getId(), stream);
+    ReadWriteIOUtils.write(cliHostname, stream);
   }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
index 0f26c42e39d..bd9e74b73b9 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
@@ -196,6 +196,8 @@ public class ColumnHeaderConstant {
   public static final String QUERY_ID = "QueryId";
   public static final String ELAPSED_TIME = "ElapsedTime";
   public static final String STATEMENT = "Statement";
+  public static final String CLIENT_IP = "ClientIp";
+  public static final String TIMEOUT = "Timeout";
 
   // column names for show space quota
   public static final String QUOTA_TYPE = "QuotaType";
@@ -496,10 +498,12 @@ public class ColumnHeaderConstant {
 
   public static final List<ColumnHeader> showQueriesColumnHeaders =
       ImmutableList.of(
-          new ColumnHeader(QUERY_ID, TSDataType.TEXT),
+          new ColumnHeader(QUERY_ID, TSDataType.STRING),
           new ColumnHeader(DATA_NODE_ID, TSDataType.INT32),
           new ColumnHeader(ELAPSED_TIME, TSDataType.FLOAT),
-          new ColumnHeader(STATEMENT, TSDataType.TEXT));
+          new ColumnHeader(STATEMENT, TSDataType.STRING),
+          new ColumnHeader(CLIENT_IP, TSDataType.STRING),
+          new ColumnHeader(TIMEOUT, TSDataType.INT64));
 
   public static final List<ColumnHeader> showSpaceQuotaColumnHeaders =
       ImmutableList.of(
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
index 14995b887bf..f655df432bf 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
@@ -208,7 +208,7 @@ public class FragmentInstanceContext extends QueryContext {
       FragmentInstanceId id, FragmentInstanceStateMachine stateMachine) {
     FragmentInstanceContext instanceContext =
         new FragmentInstanceContext(
-            id, stateMachine, new SessionInfo(1, "test", ZoneId.systemDefault()));
+            id, stateMachine, new SessionInfo(1, "test", ZoneId.systemDefault(), ""));
     instanceContext.initialize();
     instanceContext.start();
     return instanceContext;
@@ -223,7 +223,7 @@ public class FragmentInstanceContext extends QueryContext {
         new FragmentInstanceContext(
             id,
             stateMachine,
-            new SessionInfo(1, "test", ZoneId.systemDefault()),
+            new SessionInfo(1, "test", ZoneId.systemDefault(), ""),
             memoryReservationManager);
     instanceContext.initialize();
     instanceContext.start();
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
index d12eb84d850..1a507d25b75 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java
@@ -140,6 +140,8 @@ public class ShowQueriesOperator implements SourceOperator {
             (float) (currTime - queryExecution.getStartExecutionTime()) / 1000);
         columnBuilders[3].writeBinary(
             BytesUtils.valueOf(queryExecution.getExecuteSQL().orElse("UNKNOWN")));
+        columnBuilders[4].writeBinary(BytesUtils.valueOf(queryExecution.getClientHostname()));
+        columnBuilders[5].writeLong(queryExecution.getTimeout());
         builder.declarePosition();
       }
     }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
index 5cb2d4b449c..11ced723eeb 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java
@@ -66,6 +66,10 @@ public interface IQueryExecution {
    */
   long getTotalExecutionTime();
 
+  String getClientHostname();
+
+  long getTimeout();
+
   Optional<String> getExecuteSQL();
 
   String getStatementType();
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
index 0ae40345268..43f46133053 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
@@ -657,6 +657,16 @@ public class QueryExecution implements IQueryExecution {
     return totalExecutionTime;
   }
 
+  @Override
+  public String getClientHostname() {
+    return context.getClientHostName();
+  }
+
+  @Override
+  public long getTimeout() {
+    return context.getTimeOut();
+  }
+
   @Override
   public Optional<String> getExecuteSQL() {
     return Optional.ofNullable(context.getSql());
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
index a9d96961834..a3e16a991ec 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
@@ -251,6 +251,16 @@ public class ConfigExecution implements IQueryExecution {
     return totalExecutionTime;
   }
 
+  @Override
+  public String getClientHostname() {
+    return context.getClientHostName();
+  }
+
+  @Override
+  public long getTimeout() {
+    return context.getTimeOut();
+  }
+
   @Override
   public Optional<String> getExecuteSQL() {
     return Optional.ofNullable(context.getSql());
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java
index 80a6e0326d3..896d91ebb8b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java
@@ -19,7 +19,7 @@
 package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source;
 
 import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
-import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeader;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
@@ -32,15 +32,16 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
+
+import static org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant.showQueriesColumnHeaders;
 
 public class ShowQueriesNode extends VirtualSourceNode {
 
   public static final List<String> SHOW_QUERIES_HEADER_COLUMNS =
-      ImmutableList.of(
-          ColumnHeaderConstant.QUERY_ID,
-          ColumnHeaderConstant.DATA_NODE_ID,
-          ColumnHeaderConstant.ELAPSED_TIME,
-          ColumnHeaderConstant.STATEMENT);
+      showQueriesColumnHeaders.stream()
+          .map(ColumnHeader::getColumnName)
+          .collect(Collectors.toList());
 
   public ShowQueriesNode(PlanNodeId id, TDataNodeLocation dataNodeLocation) {
     super(id, dataNodeLocation);
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
index d31b7d11244..3e566fd6df7 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
@@ -88,7 +88,7 @@ public class IoTDBInternalLocalReporter extends IoTDBInternalReporter {
   public IoTDBInternalLocalReporter() {
     partitionFetcher = ClusterPartitionFetcher.getInstance();
     schemaFetcher = ClusterSchemaFetcher.getInstance();
-    sessionInfo = new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault());
+    sessionInfo = new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), "");
 
     IClientManager<ConfigRegionId, ConfigNodeClient> configNodeClientManager =
         ConfigNodeClientManager.getInstance();
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java
index 0aeb83c959e..8a1f305e4f2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadTsFileLoader.java
@@ -242,7 +242,7 @@ public class ActiveLoadTsFileLoader {
           .executeForTreeModel(
               statement,
               SessionManager.getInstance().requestQueryId(),
-              new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault()),
+              new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), ""),
               "",
               ClusterPartitionFetcher.getInstance(),
               ClusterSchemaFetcher.getInstance(),
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
index 604d3eb3442..7f3b5cd8d2d 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
@@ -1838,6 +1838,16 @@ public class MergeSortOperatorTest {
       return Optional.empty();
     }
 
+    @Override
+    public String getClientHostname() {
+      return "";
+    }
+
+    @Override
+    public long getTimeout() {
+      return 60_000L;
+    }
+
     @Override
     public Optional<ByteBuffer> getByteBufferBatchResult() {
       return Optional.empty();
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java
index b9681477344..f7b47615bd7 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java
@@ -1059,7 +1059,7 @@ public class AnalyzeTest {
           new MPPQueryContext(
               "",
               new QueryId("test_query"),
-              new SessionInfo(0, "test", ZoneId.systemDefault()),
+              new SessionInfo(0, "test", ZoneId.systemDefault(), ""),
               new TEndPoint(),
               new TEndPoint());
       Analyzer analyzer =
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java
index b82d9ed6af2..5fd5647845d 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java
@@ -450,7 +450,7 @@ public class LimitOffsetPushDownTest {
         new MPPQueryContext(
             "",
             new QueryId("test_query"),
-            new SessionInfo(-1L, "", ZoneId.systemDefault()),
+            new SessionInfo(-1L, "", ZoneId.systemDefault(), ""),
             new TEndPoint(),
             new TEndPoint());
     Analyzer analyzer =
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java
index 711e67682ca..e435468f533 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java
@@ -56,7 +56,8 @@ import static org.junit.Assert.assertNull;
 
 public class FragmentInstanceSerdeTest {
   private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
-  private static final SessionInfo sessionInfo = new SessionInfo(1, "test", ZoneId.systemDefault());
+  private static final SessionInfo sessionInfo =
+      new SessionInfo(1, "test", ZoneId.systemDefault(), "");
 
   @Test
   public void testSerializeAndDeserializeForTree1() throws IllegalPathException {
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java
index 176cc7bde18..7365102d85d 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java
@@ -49,7 +49,7 @@ public class LogicalPlannerTestUtil {
         new MPPQueryContext(
             "",
             new QueryId("test_query"),
-            new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault()),
+            new SessionInfo(0, AuthorityChecker.SUPER_USER, ZoneId.systemDefault(), ""),
             DataNodeEndPoints.LOCAL_HOST_DATA_BLOCK_ENDPOINT,
             DataNodeEndPoints.LOCAL_HOST_INTERNAL_ENDPOINT);
     Analyzer analyzer =