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