You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/06/16 09:43:35 UTC

[incubator-iotdb] branch fix_version_0.10 created (now b0db32f)

This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a change to branch fix_version_0.10
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


      at b0db32f  fix version

This branch includes the following new commits:

     new b0db32f  fix version

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-iotdb] 01/01: fix version

Posted by qi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch fix_version_0.10
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit b0db32ff392bd6b9e5c67da88af3f13bb64dd0a4
Author: qiaojialin <64...@qq.com>
AuthorDate: Tue Jun 16 17:43:14 2020 +0800

    fix version
---
 .../apache/iotdb/db/utils/VersionUtilsTest.java    | 55 ++++++++++++++++++++++
 .../apache/iotdb/tsfile/utils/VersionUtils.java    | 12 +++--
 2 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/server/src/test/java/org/apache/iotdb/db/utils/VersionUtilsTest.java b/server/src/test/java/org/apache/iotdb/db/utils/VersionUtilsTest.java
new file mode 100644
index 0000000..bdfdf46
--- /dev/null
+++ b/server/src/test/java/org/apache/iotdb/db/utils/VersionUtilsTest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.db.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.utils.Pair;
+import org.apache.iotdb.tsfile.utils.VersionUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class VersionUtilsTest {
+
+  @Test
+  public void uncompleteFileTest() {
+    List<ChunkMetadata> chunkMetadataList = new ArrayList<>();
+    chunkMetadataList.add(new ChunkMetadata("s1", TSDataType.INT32, 10, null));
+    chunkMetadataList.add(new ChunkMetadata("s1", TSDataType.INT32, 20, null));
+    chunkMetadataList.add(new ChunkMetadata("s1", TSDataType.INT32, 30, null));
+    chunkMetadataList.add(new ChunkMetadata("s1", TSDataType.INT32, 40, null));
+    chunkMetadataList.add(new ChunkMetadata("s1", TSDataType.INT32, 50, null));
+
+    List<Pair<Long, Long>> versionInfo = new ArrayList<>();
+    versionInfo.add(new Pair<>(25L, 1L));
+    versionInfo.add(new Pair<>(45L, 2L));
+
+    VersionUtils.applyVersion(chunkMetadataList, versionInfo);
+
+    Assert.assertEquals(1L, chunkMetadataList.get(0).getVersion());
+    Assert.assertEquals(1L, chunkMetadataList.get(1).getVersion());
+    Assert.assertEquals(2L, chunkMetadataList.get(2).getVersion());
+    Assert.assertEquals(2L, chunkMetadataList.get(3).getVersion());
+    Assert.assertEquals(0L, chunkMetadataList.get(4).getVersion());
+  }
+
+
+}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/VersionUtils.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/VersionUtils.java
index 621c9c9..54f6f31 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/VersionUtils.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/VersionUtils.java
@@ -33,14 +33,16 @@ public class VersionUtils {
     }
     int versionIndex = 0;
     for (ChunkMetadata chunkMetadata : chunkMetadataList) {
+
       while (chunkMetadata.getOffsetOfChunkHeader() >= versionInfo.get(versionIndex).left) {
         versionIndex++;
+        // When the TsFile is uncompleted,
+        // skip the chunkMetadatas those don't have their version information
+        if (versionIndex >= versionInfo.size()) {
+          break;
+        }
       }
-      // When the TsFile is uncompleted, 
-      // skip the chunkMetadatas those don't have their version information
-      if (versionIndex >= versionInfo.size()) {
-        break;
-      }
+
       chunkMetadata.setVersion(versionInfo.get(versionIndex).right);
     }
   }