From f35159b7a5159acf95bd2abd6d85d58b5760b29e Mon Sep 17 00:00:00 2001 From: Xiaobing Li Date: Thu, 7 Mar 2024 12:00:21 -0800 Subject: [PATCH] use gte(let) to replace between() which has a bug --- .../local/segment/index/readers/BitSlicedRangeIndexReader.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/readers/BitSlicedRangeIndexReader.java b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/readers/BitSlicedRangeIndexReader.java index a21891e2386..a761603d3a3 100644 --- a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/readers/BitSlicedRangeIndexReader.java +++ b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/readers/BitSlicedRangeIndexReader.java @@ -188,7 +188,8 @@ private ImmutableRoaringBitmap queryRangeBitmap(long min, long max, long columnM if (min == max) { return rangeBitmap.eq(min).toMutableRoaringBitmap(); } - return rangeBitmap.between(min, max).toMutableRoaringBitmap(); + // TODO: found bug in between() and use gte(lte) as a workaround for now. + return rangeBitmap.gte(min, rangeBitmap.lte(max)).toMutableRoaringBitmap(); } return rangeBitmap.lte(max).toMutableRoaringBitmap(); } else {