This is an automated email from the ASF dual-hosted git repository. jianyun pushed a commit to branch rocksdb/dev in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 68f9c0d5d2d6cf8a6b2b1d59d88075fe9577383a Author: lisijia <[email protected]> AuthorDate: Fri Mar 4 11:33:28 2022 +0800 fix a bug where the number of nodes is incorrect --- .../java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java | 3 ++- .../java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java index 603c07f..0896d34 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java @@ -958,7 +958,8 @@ public class MRocksDBManager implements IMetaManager { } public void traverseOutcomeBasins( - String[] nodes, int maxLevel, Consumer<String> consumer, Character[] nodeTypeArray) { + String[] nodes, int maxLevel, Consumer<String> consumer, Character[] nodeTypeArray) + throws IllegalPathException { List<String[]> allNodesArray = RocksDBUtils.replaceMultiWildcardToSingle(nodes, maxLevel); allNodesArray.parallelStream().forEach(x -> traverseByPatternPath(x, consumer, nodeTypeArray)); } diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java index 1e9e365..c4f4e17 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java @@ -510,7 +510,8 @@ public class RocksDBUtils { } // eg. root.a.*.**.b.**.c - public static List<String[]> replaceMultiWildcardToSingle(String[] nodes, int maxLevel) { + public static List<String[]> replaceMultiWildcardToSingle(String[] nodes, int maxLevel) + throws IllegalPathException { List<String[]> allNodesArray = new ArrayList<>(); List<Integer> multiWildcardPosition = new ArrayList<>(); for (int i = 0; i < nodes.length; i++) { @@ -524,7 +525,7 @@ public class RocksDBUtils { for (int i = 1; i <= maxLevel - nodes.length + 2; i++) { String[] clone = nodes.clone(); clone[multiWildcardPosition.get(0)] = replaceWildcard(i); - allNodesArray.add(clone); + allNodesArray.add(RocksDBUtils.newStringArray(clone)); } } else { for (int sum = multiWildcardPosition.size(); @@ -536,7 +537,7 @@ public class RocksDBUtils { for (int i = 0; i < value.length; i++) { clone[multiWildcardPosition.get(i)] = replaceWildcard(value[i]); } - allNodesArray.add(clone); + allNodesArray.add(RocksDBUtils.newStringArray(clone)); } } }
