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]
