You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/01/21 06:00:54 UTC

[iotdb] branch master updated: [IOTDB-2380] add show schema interface for show measurements in template (#4940)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 87d70f2   [IOTDB-2380] add show schema interface for show measurements in template (#4940)
87d70f2 is described below

commit 87d70f208507a80191458c8039d924a394b0cea4
Author: ZhaoXin <x_...@163.com>
AuthorDate: Fri Jan 21 14:00:17 2022 +0800

     [IOTDB-2380] add show schema interface for show measurements in template (#4940)
---
 .../main/java/org/apache/iotdb/db/metadata/MManager.java    | 12 ++++++++++++
 .../java/org/apache/iotdb/db/metadata/TemplateTest.java     | 13 +++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 8f94394..0c5f234 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -2242,6 +2242,18 @@ public class MManager {
     return templateManager.getTemplate(templateName).getMeasurementsUnderPath(path);
   }
 
+  public List<Pair<String, IMeasurementSchema>> getSchemasInTemplate(
+      String templateName, String path) throws MetadataException {
+    Set<Map.Entry<String, IMeasurementSchema>> rawSchemas =
+        templateManager.getTemplate(templateName).getSchemaMap().entrySet();
+    return rawSchemas.stream()
+        .filter(e -> e.getKey().startsWith(path))
+        .collect(
+            ArrayList::new,
+            (res, elem) -> res.add(new Pair<>(elem.getKey(), elem.getValue())),
+            ArrayList::addAll);
+  }
+
   public Set<String> getAllTemplates() {
     return templateManager.getAllTemplateName();
   }
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/TemplateTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/TemplateTest.java
index 3ed4cee..9f60951 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/TemplateTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/TemplateTest.java
@@ -329,6 +329,19 @@ public class TemplateTest {
   }
 
   @Test
+  public void testShowAllSchemas() throws MetadataException {
+    MManager manager = IoTDB.metaManager;
+    CreateTemplatePlan plan1 = getTreeTemplatePlan();
+    CreateTemplatePlan plan2 = getCreateTemplatePlan();
+    manager.createSchemaTemplate(plan1);
+    manager.createSchemaTemplate(plan2);
+    assertEquals(4, manager.getSchemasInTemplate("treeTemplate", "").size());
+    assertEquals(2, manager.getSchemasInTemplate("treeTemplate", "GPS").size());
+    assertEquals(11, manager.getSchemasInTemplate("template1", "").size());
+    assertEquals(10, manager.getSchemasInTemplate("template1", "vector").size());
+  }
+
+  @Test
   public void testDropTemplate() throws MetadataException {
     MManager manager = IoTDB.metaManager;
     CreateTemplatePlan plan1 = getTreeTemplatePlan();