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 <[email protected]> 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());
