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); }
