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

aokolnychyi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new caf424a373 Core: Use RoaringPositionBitmap in position index (#11441)
caf424a373 is described below

commit caf424a373fa125d427401acda7079b08abea9de
Author: Anton Okolnychyi <[email protected]>
AuthorDate: Fri Nov 1 20:18:34 2024 +0100

    Core: Use RoaringPositionBitmap in position index (#11441)
---
 .../iceberg/deletes/BitmapPositionDeleteIndex.java  | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git 
a/core/src/main/java/org/apache/iceberg/deletes/BitmapPositionDeleteIndex.java 
b/core/src/main/java/org/apache/iceberg/deletes/BitmapPositionDeleteIndex.java
index a1b57a3866..77ad7b47ac 100644
--- 
a/core/src/main/java/org/apache/iceberg/deletes/BitmapPositionDeleteIndex.java
+++ 
b/core/src/main/java/org/apache/iceberg/deletes/BitmapPositionDeleteIndex.java
@@ -23,40 +23,39 @@ import java.util.List;
 import java.util.function.LongConsumer;
 import org.apache.iceberg.DeleteFile;
 import org.apache.iceberg.relocated.com.google.common.collect.Lists;
-import org.roaringbitmap.longlong.Roaring64Bitmap;
 
 class BitmapPositionDeleteIndex implements PositionDeleteIndex {
-  private final Roaring64Bitmap roaring64Bitmap;
+  private final RoaringPositionBitmap bitmap;
   private final List<DeleteFile> deleteFiles;
 
   BitmapPositionDeleteIndex() {
-    this.roaring64Bitmap = new Roaring64Bitmap();
+    this.bitmap = new RoaringPositionBitmap();
     this.deleteFiles = Lists.newArrayList();
   }
 
   BitmapPositionDeleteIndex(Collection<DeleteFile> deleteFiles) {
-    this.roaring64Bitmap = new Roaring64Bitmap();
+    this.bitmap = new RoaringPositionBitmap();
     this.deleteFiles = Lists.newArrayList(deleteFiles);
   }
 
   BitmapPositionDeleteIndex(DeleteFile deleteFile) {
-    this.roaring64Bitmap = new Roaring64Bitmap();
+    this.bitmap = new RoaringPositionBitmap();
     this.deleteFiles = deleteFile != null ? Lists.newArrayList(deleteFile) : 
Lists.newArrayList();
   }
 
   void merge(BitmapPositionDeleteIndex that) {
-    roaring64Bitmap.or(that.roaring64Bitmap);
+    bitmap.setAll(that.bitmap);
     deleteFiles.addAll(that.deleteFiles);
   }
 
   @Override
   public void delete(long position) {
-    roaring64Bitmap.add(position);
+    bitmap.set(position);
   }
 
   @Override
   public void delete(long posStart, long posEnd) {
-    roaring64Bitmap.addRange(posStart, posEnd);
+    bitmap.setRange(posStart, posEnd);
   }
 
   @Override
@@ -71,17 +70,17 @@ class BitmapPositionDeleteIndex implements 
PositionDeleteIndex {
 
   @Override
   public boolean isDeleted(long position) {
-    return roaring64Bitmap.contains(position);
+    return bitmap.contains(position);
   }
 
   @Override
   public boolean isEmpty() {
-    return roaring64Bitmap.isEmpty();
+    return bitmap.isEmpty();
   }
 
   @Override
   public void forEach(LongConsumer consumer) {
-    roaring64Bitmap.forEach(consumer::accept);
+    bitmap.forEach(consumer);
   }
 
   @Override

Reply via email to