You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2020/03/05 13:16:25 UTC
[incubator-iotdb] 01/01: [IOTDB-546] Show child paths statement
doesn't show quotation marks in path
This is an automated email from the ASF dual-hosted git repository.
sunzesong pushed a commit to branch jira_444
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 40222c0a9fc42176179428a20632d744deacd34d
Author: samperson1997 <sz...@mails.tsinghua.edu.cn>
AuthorDate: Thu Mar 5 21:16:07 2020 +0800
[IOTDB-546] Show child paths statement doesn't show quotation marks in path
---
.../java/org/apache/iotdb/db/metadata/MTree.java | 10 ++++--
.../iotdb/db/metadata/MManagerBasicTest.java | 41 +++++++++++++++++++---
.../org/apache/iotdb/db/metadata/MTreeTest.java | 3 ++
3 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index 87b6afd..4869b70 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -562,7 +562,7 @@ public class MTree implements Serializable {
parent + node.getName() + PATH_SEPARATOR, res, length);
}
} else {
- if (node instanceof InternalMNode) {
+ if (node instanceof InternalMNode && node.getChildren().size() > 0) {
for (MNode child : node.getChildren().values()) {
if (!Pattern.matches(nodeReg.replace("*", ".*"), child.getName())) {
continue;
@@ -575,7 +575,13 @@ public class MTree implements Serializable {
}
}
} else if (idx == length) {
- res.add(parent + node.getName());
+ String nodeName;
+ if (node.getName().contains(TsFileConstant.PATH_SEPARATOR)) {
+ nodeName = "\"" + node + "\"";
+ } else {
+ nodeName = node.getName();
+ }
+ res.add(parent + nodeName);
}
}
}
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 ba8a67f..52d6a86 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
@@ -66,6 +66,7 @@ public class MManagerBasicTest {
try {
manager.setStorageGroup("root.laptop.d1");
+ manager.setStorageGroup("root.1");
} catch (MetadataException e) {
e.printStackTrace();
fail(e.getMessage());
@@ -80,8 +81,7 @@ public class MManagerBasicTest {
try {
manager.createTimeseries("root.laptop.d1.s0", TSDataType.valueOf("INT32"),
- TSEncoding.valueOf("RLE"), compressionType, Collections
- .emptyMap());
+ TSEncoding.valueOf("RLE"), compressionType, Collections.emptyMap());
} catch (MetadataException e) {
e.printStackTrace();
fail(e.getMessage());
@@ -93,20 +93,31 @@ public class MManagerBasicTest {
try {
manager.createTimeseries("root.laptop.d1.s1", TSDataType.valueOf("INT32"),
TSEncoding.valueOf("RLE"), compressionType, Collections.emptyMap());
+ manager.createTimeseries("root.laptop.d1.1_2", TSDataType.INT32, TSEncoding.RLE,
+ TSFileDescriptor.getInstance().getConfig().getCompressor(), Collections.EMPTY_MAP);
+ manager.createTimeseries("root.laptop.d1.\"1.2.3\"", TSDataType.INT32, TSEncoding.RLE,
+ TSFileDescriptor.getInstance().getConfig().getCompressor(), Collections.EMPTY_MAP);
+ manager.createTimeseries("root.1.2.3", TSDataType.INT32, TSEncoding.RLE,
+ TSFileDescriptor.getInstance().getConfig().getCompressor(), Collections.EMPTY_MAP);
} catch (MetadataException e1) {
e1.printStackTrace();
fail(e1.getMessage());
}
assertTrue(manager.isPathExist("root.laptop.d1.s1"));
+ assertTrue(manager.isPathExist("root.laptop.d1.1_2"));
+ assertTrue(manager.isPathExist("root.laptop.d1.\"1.2.3\""));
+ assertTrue(manager.isPathExist("root.1.2.3"));
+ assertTrue(manager.isPathExist("root.1"));
+ assertTrue(manager.isPathExist("root.1.2"));
+
try {
manager.deleteTimeseries("root.laptop.d1.s1");
} catch (MetadataException e) {
e.printStackTrace();
fail(e.getMessage());
}
- // just delete s0, and don't delete root.laptop.d1??
- // delete storage group or not
assertFalse(manager.isPathExist("root.laptop.d1.s1"));
+
try {
manager.deleteTimeseries("root.laptop.d1.s0");
} catch (MetadataException e) {
@@ -158,6 +169,28 @@ public class MManagerBasicTest {
"root.laptop.d2"),
e.getMessage());
}
+
+ try {
+ manager.deleteTimeseries("root.laptop.d1.1_2");
+ manager.deleteTimeseries("root.laptop.d1.\"1.2.3\"");
+ manager.deleteTimeseries("root.1.2.3");
+ } catch (MetadataException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ assertFalse(manager.isPathExist("root.laptop.d1.1_2"));
+ assertFalse(manager.isPathExist("root.laptop.d1.\"1.2.3\""));
+ assertFalse(manager.isPathExist("root.1.2.3"));
+ assertFalse(manager.isPathExist("root.1.2"));
+ assertTrue(manager.isPathExist("root.1"));
+
+ try {
+ manager.deleteStorageGroups(Collections.singletonList("root.1"));
+ } catch (MetadataException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ assertFalse(manager.isPathExist("root.1"));
}
@Test
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/MTreeTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/MTreeTest.java
index b62dc50..6cd9783 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/MTreeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/MTreeTest.java
@@ -278,6 +278,9 @@ public class MTreeTest {
assertTrue(root.isStorageGroup("root.laptop.d1"));
assertTrue(root.isStorageGroup("root.laptop.d2"));
assertFalse(root.isStorageGroup("root.laptop.d3"));
+
+ root.setStorageGroup("root.1");
+ assertTrue(root.isStorageGroup("root.1"));
} catch (MetadataException e) {
e.printStackTrace();
fail(e.getMessage());