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")));
}
/**