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

jiangtian pushed a commit to branch mem_usage_refinement
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit 5f7f9ef18f7bfffe9437a0708364db4b7ac97243
Author: Tian Jiang <[email protected]>
AuthorDate: Tue Apr 22 14:56:52 2025 +0800

    fix bloom filter
---
 java/tsfile/src/main/java/org/apache/tsfile/utils/BloomFilter.java  | 6 +++++-
 .../test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java  | 3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/java/tsfile/src/main/java/org/apache/tsfile/utils/BloomFilter.java 
b/java/tsfile/src/main/java/org/apache/tsfile/utils/BloomFilter.java
index d4a0f9f5..3f10f5b5 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/utils/BloomFilter.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/utils/BloomFilter.java
@@ -172,6 +172,9 @@ public class BloomFilter {
       if (!useCheapHash) {
         ret = bits.get(hash(value.getFullPath(), size, SEEDS[index++]));
       } else {
+        if (!(value instanceof FullPath)) {
+          value = new FullPath(value.getIDeviceID(), value.getMeasurement());
+        }
         ret = bits.get(hash(value, size, SEEDS[index++]));
       }
     }
@@ -179,6 +182,7 @@ public class BloomFilter {
     return ret;
   }
 
+  @Deprecated
   public boolean contains(String value) {
     if (value == null) {
       return false;
@@ -264,7 +268,7 @@ public class BloomFilter {
     if (bytes.length != 0) {
       int filterSize = ReadWriteForEncodingUtils.readUnsignedVarInt(buffer);
       int hashFunctionSize = 
ReadWriteForEncodingUtils.readUnsignedVarInt(buffer);
-      if (hashFunctionSize != Integer.MIN_VALUE) {
+      if (hashFunctionSize != Integer.MAX_VALUE) {
         return BloomFilter.buildBloomFilter(bytes, filterSize, 
hashFunctionSize);
       } else {
         hashFunctionSize = 
ReadWriteForEncodingUtils.readUnsignedVarInt(buffer);
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
 
b/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
index 854e80ac..7deb073b 100644
--- 
a/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
+++ 
b/java/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
@@ -34,6 +34,7 @@ import org.apache.tsfile.file.metadata.IDeviceID;
 import org.apache.tsfile.file.metadata.IDeviceID.Factory;
 import org.apache.tsfile.file.metadata.TableSchema;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.tsfile.read.common.FullPath;
 import org.apache.tsfile.read.common.Path;
 import org.apache.tsfile.utils.BloomFilter;
 import org.apache.tsfile.utils.FileGenerator;
@@ -188,7 +189,7 @@ public class TsFileSequenceReaderTest {
     TsFileSequenceReader reader = new 
TsFileSequenceReader(testFile.getAbsolutePath());
     BloomFilter bloomFilter = reader.readBloomFilter();
     assertNotNull(bloomFilter);
-    assertTrue(bloomFilter.contains(deviceID.toString() + ".s"));
+    assertTrue(bloomFilter.contains(new FullPath(deviceID, "s")));
     assertFalse(
         
bloomFilter.contains(Factory.DEFAULT_FACTORY.create("root.topic2").toString() + 
".s"));
   }

Reply via email to