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

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git

commit 4cbd24db4568b62d63b12f7e1c0d5cb89e3a34f2
Author: Jingsong <[email protected]>
AuthorDate: Wed Jan 24 19:45:13 2024 +0800

    [core] Avoid hashbytes twice in HashLookupStoreReader
---
 .../java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java  | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java
 
b/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java
index 6fc380691..e092ca6d5 100644
--- 
a/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java
+++ 
b/paimon-common/src/main/java/org/apache/paimon/lookup/hash/HashLookupStoreReader.java
@@ -178,18 +178,19 @@ public class HashLookupStoreReader
             return null;
         }
 
-        if (bloomFilter != null && 
!bloomFilter.testHash(MurmurHashUtils.hashBytes(key))) {
+        int hashcode = MurmurHashUtils.hashBytes(key);
+        if (bloomFilter != null && !bloomFilter.testHash(hashcode)) {
             return null;
         }
 
-        long hash = MurmurHashUtils.hashBytesPositive(key);
+        long hashPositive = hashcode & 0x7fffffff;
         int numSlots = slots[keyLength];
         int slotSize = slotSizes[keyLength];
         int indexOffset = indexOffsets[keyLength];
         long dataOffset = dataOffsets[keyLength];
 
         for (int probe = 0; probe < numSlots; probe++) {
-            long slot = (hash + probe) % numSlots;
+            long slot = (hashPositive + probe) % numSlots;
             inputView.setReadPosition(indexOffset + slot * slotSize);
             inputView.readFully(slotBuffer, 0, slotSize);
 

Reply via email to