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

xiangfu0 pushed a commit to branch xiangfu0/data-3221-11-metadata-only-pruning
in repository https://gitbox.apache.org/repos/asf/pinot.git

commit aefdd40df4b5af2a6f829071dd2faa647d4521b6
Author: Xiang Fu <[email protected]>
AuthorDate: Wed Sep 23 20:24:04 2026 -0700

    Preserve EQ pruning short circuit while caching IN bounds
---
 .../apache/pinot/core/query/pruner/ColumnValueSegmentPruner.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/query/pruner/ColumnValueSegmentPruner.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/query/pruner/ColumnValueSegmentPruner.java
index ca3c51419cc..741a7cf8c88 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/query/pruner/ColumnValueSegmentPruner.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/query/pruner/ColumnValueSegmentPruner.java
@@ -91,8 +91,13 @@ public class ColumnValueSegmentPruner extends 
ValueBasedSegmentPruner {
     DataSourceMetadata dataSourceMetadata = getDataSourceMetadata(segment, 
column, dataSourceCache, query);
     ValueCache.CachedValue cachedValue = valueCache.get(eqPredicate, 
dataSourceMetadata.getDataType());
     // Check min/max value
-    if (!checkMinMaxRange(dataSourceMetadata.getMinValue(), 
dataSourceMetadata.getMaxValue(),
-        cachedValue.getComparableValue())) {
+    Comparable value = cachedValue.getComparableValue();
+    Comparable minValue = dataSourceMetadata.getMinValue();
+    if (minValue != null && value.compareTo(minValue) < 0) {
+      return true;
+    }
+    Comparable maxValue = dataSourceMetadata.getMaxValue();
+    if (maxValue != null && value.compareTo(maxValue) > 0) {
       return true;
     }
     // Check column partition


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to