You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/03/16 13:50:40 UTC

[iotdb] branch master updated: [IOTDB-2749]Fix isPathExist check on MTree (#5260)

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

haonan 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 d29ef70  [IOTDB-2749]Fix isPathExist check on MTree (#5260)
d29ef70 is described below

commit d29ef70755bfbb1993e644f4c45b88ef71c0d2c8
Author: ZhaoXin <x_...@163.com>
AuthorDate: Wed Mar 16 21:45:04 2022 +0800

    [IOTDB-2749]Fix isPathExist check on MTree (#5260)
---
 .../org/apache/iotdb/db/metadata/mtree/MTree.java  |  3 ++-
 .../iotdb/db/metadata/MManagerBasicTest.java       | 30 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTree.java
index ff99fd4..25565a6 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTree.java
@@ -741,8 +741,9 @@ public class MTree implements Serializable {
           return false;
         }
         cur = upperTemplate.getDirectNode(nodeNames[i]);
+      } else {
+        cur = cur.getChild(nodeNames[i]);
       }
-      cur = cur.getChild(nodeNames[i]);
       if (cur.isMeasurement()) {
         return i == nodeNames.length - 1;
       }
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
index 8c61f27..d677f25 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
@@ -254,6 +254,36 @@ public class MManagerBasicTest {
       fail(e.getMessage());
     }
     assertFalse(manager.isPathExist(new PartialPath("root.1")));
+
+    assertFalse(manager.isPathExist(new PartialPath("root.template")));
+    assertFalse(manager.isPathExist(new PartialPath("root.template.d1")));
+
+    try {
+      manager.createTimeseries(
+          new PartialPath("root.template.d2"),
+          TSDataType.INT32,
+          TSEncoding.RLE,
+          TSFileDescriptor.getInstance().getConfig().getCompressor(),
+          Collections.emptyMap());
+    } catch (MetadataException e) {
+      e.printStackTrace();
+      fail(e.getMessage());
+    }
+
+    try {
+      manager.createSchemaTemplate(getCreateTemplatePlan());
+      manager.setSchemaTemplate(new SetTemplatePlan("template1", "root.template"));
+      manager.setUsingSchemaTemplate(new ActivateTemplatePlan(new PartialPath("root.template.d1")));
+    } catch (MetadataException e) {
+      e.printStackTrace();
+      fail(e.getMessage());
+    }
+
+    assertTrue(manager.isPathExist(new PartialPath("root.template.d1")));
+    assertTrue(manager.isPathExist(new PartialPath("root.template.d1.s11")));
+    assertFalse(manager.isPathExist(new PartialPath("root.template.d2.s11")));
+    assertTrue(manager.isPathExist(new PartialPath("root.template.d1.vector")));
+    assertTrue(manager.isPathExist(new PartialPath("root.template.d1.vector.s0")));
   }
 
   /**