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 9ae48a2381afb5a5e2120a9d2fa45daa252fe748
Author: lisijia <[email protected]>
AuthorDate: Thu Mar 10 17:51:01 2022 +0800

    fix a bug in wildcard processing
---
 .../iotdb/db/metadata/rocksdb/MRocksDBManager.java | 29 +++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 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 e2375c3..695e0bb 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
@@ -123,7 +123,18 @@ import java.util.stream.Collectors;
 
 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.rocksdb.RockDBConstants.*;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.ALL_NODE_TYPE_ARRAY;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.DATA_BLOCK_TYPE_SCHEMA;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.DEFAULT_ALIGNED_ENTITY_VALUE;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.DEFAULT_NODE_VALUE;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.FLAG_IS_ALIGNED;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.FLAG_IS_SCHEMA;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.FLAG_SET_TTL;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.NODE_TYPE_ENTITY;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.NODE_TYPE_MEASUREMENT;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.NODE_TYPE_SG;
+import static 
org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.TABLE_NAME_TAGS;
+import static org.apache.iotdb.db.metadata.rocksdb.RockDBConstants.ZERO;
 import static 
org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
 
 /**
@@ -873,7 +884,7 @@ public class MRocksDBManager implements IMetaManager {
                 // wait for all executing createTimeseries operations are 
complete
                 Thread.sleep(MAX_LOCK_WAIT_TIME * MAX_PATH_DEPTH);
                 String[] nodes = path.getNodes();
-                Arrays.asList(RockDBConstants.ALL_NODE_TYPE_ARRAY).stream()
+                Arrays.asList(ALL_NODE_TYPE_ARRAY).stream()
                     .parallel()
                     .forEach(
                         type -> {
@@ -995,6 +1006,11 @@ public class MRocksDBManager implements IMetaManager {
       Character[] nodeTypeArray)
       throws IllegalPathException {
     List<String[]> allNodesArray = 
RocksDBUtils.replaceMultiWildcardToSingle(nodes, maxLevel);
+    try {
+      readWriteHandler.scanAllKeys("E:\\ideaProject\\rel-360\\all.txt");
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
     allNodesArray.parallelStream().forEach(x -> traverseByPatternPath(x, 
function, nodeTypeArray));
   }
 
@@ -1037,6 +1053,12 @@ public class MRocksDBManager implements IMetaManager {
       int level = nextFirstWildcardIndex - 1;
 
       boolean lastIteration = nextFirstWildcardIndex >= nodes.length;
+      Character[] nodeType;
+      if (!lastIteration) {
+        nodeType = ALL_NODE_TYPE_ARRAY;
+      } else {
+        nodeType = nodeTypeArray;
+      }
 
       Queue<String[]> tempNodes = new ConcurrentLinkedQueue<>();
       byte[] suffixToMatch =
@@ -1049,7 +1071,7 @@ public class MRocksDBManager implements IMetaManager {
               prefixNodes -> {
                 String levelPrefix =
                     RocksDBUtils.getLevelPathPrefix(prefixNodes, 
prefixNodes.length - 1, level);
-                Arrays.stream(nodeTypeArray)
+                Arrays.stream(nodeType)
                     .parallel()
                     .forEach(
                         x -> {
@@ -1817,6 +1839,7 @@ public class MRocksDBManager implements IMetaManager {
   /** Get storage group node by path. the give path don't need to be storage 
group path. */
   @Override
   public IStorageGroupMNode getStorageGroupNodeByPath(PartialPath path) throws 
MetadataException {
+    ensureStorageGroup(path, path.getNodeLength() - 1);
     IStorageGroupMNode node = null;
     try {
       String[] nodes = path.getNodes();

Reply via email to