This is an automated email from the ASF dual-hosted git repository.
zhoujinsong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new 0cb625072 [AMORO-4274] Remove Roaring64Bitmap.isEmpty() check in
CombinedDelete… (#4275)
0cb625072 is described below
commit 0cb625072686a58d32af00939d919569a7185586
Author: byungnam <[email protected]>
AuthorDate: Wed Jul 22 16:06:48 2026 +0900
[AMORO-4274] Remove Roaring64Bitmap.isEmpty() check in CombinedDelete…
(#4275)
[AMORO-4274] Remove Roaring64Bitmap.isEmpty() check in CombinedDeleteFilter
positionMap is populated only via computeIfAbsent(...).add(...) while
reading
position-delete files, so any stored value is a non-empty Roaring64Bitmap.
positionMap.get(...) therefore returns null or a non-empty bitmap, never an
empty one, making the isEmpty() branch unreachable.
Roaring64Bitmap.isEmpty() is backed by getLongCardinality(), which traverses
all containers, so calling it once per scanned record wastes CPU on the hot
path. Drop the check and keep only the null guard; behavior is unchanged.
Close #4274
---
.../src/main/java/org/apache/amoro/io/reader/CombinedDeleteFilter.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
a/amoro-format-iceberg/src/main/java/org/apache/amoro/io/reader/CombinedDeleteFilter.java
b/amoro-format-iceberg/src/main/java/org/apache/amoro/io/reader/CombinedDeleteFilter.java
index d184ffcde..6440f0ff2 100644
---
a/amoro-format-iceberg/src/main/java/org/apache/amoro/io/reader/CombinedDeleteFilter.java
+++
b/amoro-format-iceberg/src/main/java/org/apache/amoro/io/reader/CombinedDeleteFilter.java
@@ -415,7 +415,7 @@ public abstract class CombinedDeleteFilter<T extends
StructLike> {
return structLikeForDelete -> {
Roaring64Bitmap posSet = positionMap.get(structLikeForDelete.filePath());
- if (posSet == null || posSet.isEmpty()) {
+ if (posSet == null) {
return false;
}
return posSet.contains(structLikeForDelete.getPosition());