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

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

commit 4a5b7a751b340636d5c5d03139b2c4e7328e021b
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Sep 17 10:33:11 2025 +0800

    parital show templates
---
 .../queryengine/plan/analyze/AnalyzeVisitor.java   | 10 ----------
 .../config/executor/ClusterConfigTaskExecutor.java |  4 +++-
 .../template/ClusterTemplateManager.java           | 22 ++++++++++++++++++++++
 .../db/schemaengine/template/ITemplateManager.java |  2 ++
 4 files changed, 27 insertions(+), 11 deletions(-)

diff --git 
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
index d35188d95ca..b12f8408230 100644
--- 
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
@@ -142,7 +142,6 @@ import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.template.SetSchem
 import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.template.ShowNodesInSchemaTemplateStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.template.ShowPathSetTemplateStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.template.ShowPathsUsingTemplateStatement;
-import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.template.ShowSchemaTemplateStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.view.CreateLogicalViewStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.view.ShowLogicalViewStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.pipe.PipeEnrichedStatement;
@@ -3601,15 +3600,6 @@ public class AnalyzeVisitor extends 
StatementVisitor<Analysis, MPPQueryContext>
     return analysis;
   }
 
-  @Override
-  public Analysis visitShowSchemaTemplate(
-      ShowSchemaTemplateStatement showSchemaTemplateStatement, MPPQueryContext 
context) {
-    Analysis analysis = new Analysis();
-    analysis.setRealStatement(showSchemaTemplateStatement);
-    
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowSchemaTemplateHeader());
-    return analysis;
-  }
-
   @Override
   public Analysis visitSetSchemaTemplate(
       SetSchemaTemplateStatement setSchemaTemplateStatement, MPPQueryContext 
context) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java
index 4df8a6a4f71..9971caa051b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java
@@ -1763,7 +1763,9 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
     final SettableFuture<ConfigTaskResult> future = SettableFuture.create();
     try {
       // Send request to some API server
-      final List<Template> templateList = 
ClusterTemplateManager.getInstance().getAllTemplates();
+      final List<Template> templateList =
+          ClusterTemplateManager.getInstance()
+              
.getAllRelatedTemplates(showSchemaTemplateStatement.getAuthorityScope());
       // build TSBlock
       ShowSchemaTemplateTask.buildTSBlock(templateList, future);
     } catch (final Exception e) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
index 7a5eb3b2a61..8294bc708f7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ClusterTemplateManager.java
@@ -373,6 +373,28 @@ public class ClusterTemplateManager implements 
ITemplateManager {
     }
   }
 
+  @Override
+  public List<Template> getAllRelatedTemplates(PathPatternTree scope) {
+    readWriteLock.readLock().lock();
+    try {
+      List<Template> result = new ArrayList<>();
+      for (Map.Entry<Integer, List<PartialPath>> entry : 
templateSetOnPathsMap.entrySet()) {
+        int templateId = entry.getKey();
+        for (PartialPath path : entry.getValue()) {
+          if (!scope
+              
.getOverlappedPathPatterns(path.concatNode(MULTI_LEVEL_PATH_WILDCARD))
+              .isEmpty()) {
+            result.add(templateIdMap.get(templateId));
+            break;
+          }
+        }
+      }
+      return result;
+    } finally {
+      readWriteLock.readLock().unlock();
+    }
+  }
+
   private boolean checkIsRelated(
       PartialPath pathPattern, PartialPath pathSetTemplate, Template template) 
{
     // e.g. given template t1(s1 int32) set on root.sg, the possible 
timeseries are matched by
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ITemplateManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ITemplateManager.java
index 21b91b8751b..3259e483ad0 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ITemplateManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/template/ITemplateManager.java
@@ -77,4 +77,6 @@ public interface ITemplateManager {
   Pair<Template, List<PartialPath>> getAllPathsSetTemplate(String 
templateName);
 
   Map<Integer, Template> checkAllRelatedTemplate(PartialPath pathPattern);
+
+  List<Template> getAllRelatedTemplates(PathPatternTree scope);
 }

Reply via email to