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/22 01:27:41 UTC
[iotdb] branch rel/0.13 updated: [To rel/0.13][IOTDB-2759]Complete result of show template using or set on template (#5271)
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.13 by this push:
new 39027b5 [To rel/0.13][IOTDB-2759]Complete result of show template using or set on template (#5271)
39027b5 is described below
commit 39027b52f0c3479ff6dac5f4709c4d79564a50b1
Author: ZhaoXin <x_...@163.com>
AuthorDate: Tue Mar 22 09:25:40 2022 +0800
[To rel/0.13][IOTDB-2759]Complete result of show template using or set on template (#5271)
---
.../org/apache/iotdb/db/metadata/mtree/MTree.java | 10 ++++-----
.../db/metadata/mtree/traverser/Traverser.java | 3 ++-
.../apache/iotdb/session/template/TemplateUT.java | 24 +++++++++++++++++++++-
3 files changed, 29 insertions(+), 8 deletions(-)
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 27aeb8a..f39fd2b 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
@@ -107,7 +107,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toList;
-import static org.apache.iotdb.db.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
import static org.apache.iotdb.db.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
import static org.apache.iotdb.db.metadata.lastCache.LastCacheManager.getLastTimeStamp;
@@ -1768,8 +1767,7 @@ public class MTree implements Serializable {
List<String> resSet = new ArrayList<>();
for (PartialPath sgPath : initPath) {
CollectorTraverser<Set<String>> setTemplatePaths =
- new CollectorTraverser<Set<String>>(
- this.root, sgPath.concatNode(MULTI_LEVEL_PATH_WILDCARD)) {
+ new CollectorTraverser<Set<String>>(this.root, sgPath) {
@Override
protected boolean processInternalMatchedMNode(IMNode node, int idx, int level)
throws MetadataException {
@@ -1798,6 +1796,7 @@ public class MTree implements Serializable {
return false;
}
};
+ setTemplatePaths.setPrefixMatch(true);
setTemplatePaths.traverse();
}
return resSet;
@@ -1813,8 +1812,7 @@ public class MTree implements Serializable {
for (PartialPath sgPath : initPath) {
CollectorTraverser<Set<String>> usingTemplatePaths =
- new CollectorTraverser<Set<String>>(
- this.root, sgPath.concatNode(MULTI_LEVEL_PATH_WILDCARD)) {
+ new CollectorTraverser<Set<String>>(this.root, sgPath) {
@Override
protected boolean processInternalMatchedMNode(IMNode node, int idx, int level)
throws MetadataException {
@@ -1845,7 +1843,7 @@ public class MTree implements Serializable {
return false;
}
};
-
+ usingTemplatePaths.setPrefixMatch(true);
usingTemplatePaths.traverse();
}
return result;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java
index 12590ab..a13a2f3 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java
@@ -273,7 +273,8 @@ public abstract class Traverser {
*/
protected PartialPath getCurrentPartialPath(IMNode currentNode) throws IllegalPathException {
Iterator<IMNode> nodes = traverseContext.descendingIterator();
- StringBuilder builder = new StringBuilder(nodes.next().getName());
+ StringBuilder builder =
+ nodes.hasNext() ? new StringBuilder(nodes.next().getName()) : new StringBuilder();
while (nodes.hasNext()) {
builder.append(TsFileConstant.PATH_SEPARATOR);
builder.append(nodes.next().getName());
diff --git a/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java b/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java
index 877e71c..a132ecf 100644
--- a/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java
+++ b/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java
@@ -151,6 +151,12 @@ public class TemplateUT {
new HashSet<>(Arrays.asList("root.sg.v1", "root.sg.v2", "root.sg.v3")),
new HashSet<>(session.showPathsTemplateSetOn("template1")));
+ session.setStorageGroup("root.test.sgt");
+ session.setSchemaTemplate("template1", "root.test.sgt");
+ assertEquals(
+ new HashSet<>(Arrays.asList("root.test.sgt", "root.sg.v1", "root.sg.v2", "root.sg.v3")),
+ new HashSet<>(session.showPathsTemplateSetOn("template1")));
+
assertEquals(
new HashSet<>(Arrays.asList()),
new HashSet<>(session.showPathsTemplateUsingOn("template1")));
@@ -171,7 +177,8 @@ public class TemplateUT {
"root.sg.v3",
"root.sg.v4",
"root.sg.v5",
- "root.sg.v6")),
+ "root.sg.v6",
+ "root.test.sgt")),
new HashSet<>(session.showPathsTemplateSetOn("*")));
session.insertRecord(
@@ -195,6 +202,21 @@ public class TemplateUT {
assertEquals(
new HashSet<>(Arrays.asList("root.sg.v1", "root.sg.v5")),
new HashSet<>(session.showPathsTemplateUsingOn("*")));
+
+ session.insertRecord(
+ "root.test.sgt.GPS",
+ 110L,
+ Arrays.asList("x"),
+ Arrays.asList(TSDataType.FLOAT),
+ Arrays.asList(1.0f));
+
+ assertEquals(
+ new HashSet<>(Arrays.asList("root.sg.v1", "root.sg.v5", "root.test.sgt")),
+ new HashSet<>(session.showPathsTemplateUsingOn("*")));
+
+ assertEquals(
+ new HashSet<>(Arrays.asList("root.test.sgt", "root.sg.v1")),
+ new HashSet<>(session.showPathsTemplateUsingOn("template1")));
}
@Test