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

xiangfu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new e2053f6  Refactor getMin/getMax value to IndexCreationContext from 
Range (#8442)
e2053f6 is described below

commit e2053f6776911dcce5f1ef1e32ed35063ca10bea
Author: Xiang Fu <xiangfu.1...@gmail.com>
AuthorDate: Wed Mar 30 13:04:51 2022 -0700

    Refactor getMin/getMax value to IndexCreationContext from Range (#8442)
---
 .../creator/impl/DefaultIndexCreatorProvider.java  |  4 +-
 .../loader/invertedindex/RangeIndexHandler.java    |  2 +-
 .../segment/spi/creator/IndexCreationContext.java  | 75 +++++++++++++++-------
 3 files changed, 54 insertions(+), 27 deletions(-)

diff --git 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/DefaultIndexCreatorProvider.java
 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/DefaultIndexCreatorProvider.java
index 2753459..d7cee40 100644
--- 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/DefaultIndexCreatorProvider.java
+++ 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/DefaultIndexCreatorProvider.java
@@ -263,8 +263,8 @@ public final class DefaultIndexCreatorProvider implements 
IndexCreatorProvider {
       if (context.hasDictionary()) {
         return new BitSlicedRangeIndexCreator(context.getIndexDir(), 
context.getFieldSpec(), context.getCardinality());
       }
-      return new BitSlicedRangeIndexCreator(context.getIndexDir(), 
context.getFieldSpec(), context.getMin(),
-          context.getMax());
+      return new BitSlicedRangeIndexCreator(context.getIndexDir(), 
context.getFieldSpec(), context.getMinValue(),
+          context.getMaxValue());
     }
     // default to RangeIndexCreator for the time being
     return new RangeIndexCreator(context.getIndexDir(), context.getFieldSpec(),
diff --git 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/loader/invertedindex/RangeIndexHandler.java
 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/loader/invertedindex/RangeIndexHandler.java
index 02161a0..c16ae46 100644
--- 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/loader/invertedindex/RangeIndexHandler.java
+++ 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/loader/invertedindex/RangeIndexHandler.java
@@ -246,6 +246,6 @@ public class RangeIndexHandler implements IndexHandler {
     File indexDir = _segmentMetadata.getIndexDir();
     return indexCreatorProvider.newRangeIndexCreator(
         
IndexCreationContext.builder().withIndexDir(indexDir).withColumnMetadata(columnMetadata).build()
-            .forRangeIndex(_rangeIndexVersion, columnMetadata.getMinValue(), 
columnMetadata.getMaxValue()));
+            .forRangeIndex(_rangeIndexVersion));
   }
 }
diff --git 
a/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/creator/IndexCreationContext.java
 
b/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/creator/IndexCreationContext.java
index d70e443..ee018ae 100644
--- 
a/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/creator/IndexCreationContext.java
+++ 
b/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/creator/IndexCreationContext.java
@@ -59,6 +59,10 @@ public interface IndexCreationContext {
 
   boolean hasDictionary();
 
+  Comparable<?> getMinValue();
+
+  Comparable<?> getMaxValue();
+
   final class Builder {
     private File _indexDir;
     private int _lengthOfLongestEntry;
@@ -71,6 +75,8 @@ public interface IndexCreationContext {
     private int _totalNumberOfEntries;
     private int _totalDocs;
     private boolean _hasDictionary = true;
+    private Comparable<?> _minValue;
+    private Comparable<?> _maxValue;
 
     public Builder withColumnIndexCreationInfo(ColumnIndexCreationInfo 
columnIndexCreationInfo) {
       return 
withLengthOfLongestEntry(columnIndexCreationInfo.getLengthOfLongestEntry())
@@ -94,7 +100,9 @@ public interface IndexCreationContext {
           .withCardinality(columnMetadata.getCardinality())
           .withTotalNumberOfEntries(columnMetadata.getTotalNumberOfEntries())
           .withTotalDocs(columnMetadata.getTotalDocs())
-          .withDictionary(columnMetadata.hasDictionary());
+          .withDictionary(columnMetadata.hasDictionary())
+          .withMinValue(columnMetadata.getMinValue())
+          .withMaxValue(columnMetadata.getMaxValue());
     }
 
     public Builder withLengthOfLongestEntry(int lengthOfLongestEntry) {
@@ -142,11 +150,20 @@ public interface IndexCreationContext {
       return this;
     }
 
+    public Builder withMinValue(Comparable<?> minValue) {
+      _minValue = minValue;
+      return this;
+    }
+
+    public Builder withMaxValue(Comparable<?> maxValue) {
+      _maxValue = maxValue;
+      return this;
+    }
+
     public Common build() {
-      return new Common(Objects.requireNonNull(_indexDir),
-          _lengthOfLongestEntry, _maxNumberOfMultiValueElements, 
_maxRowLengthInBytes,
-          _onHeap, Objects.requireNonNull(_fieldSpec),
-          _sorted, _cardinality, _totalNumberOfEntries, _totalDocs, 
_hasDictionary);
+      return new Common(Objects.requireNonNull(_indexDir), 
_lengthOfLongestEntry, _maxNumberOfMultiValueElements,
+          _maxRowLengthInBytes, _onHeap, Objects.requireNonNull(_fieldSpec), 
_sorted, _cardinality,
+          _totalNumberOfEntries, _totalDocs, _hasDictionary, _minValue, 
_maxValue);
     }
   }
 
@@ -167,11 +184,13 @@ public interface IndexCreationContext {
     private final int _totalNumberOfEntries;
     private final int _totalDocs;
     private final boolean _hasDictionary;
+    private final Comparable<?> _minValue;
+    private final Comparable<?> _maxValue;
 
     public Common(File indexDir, int lengthOfLongestEntry,
         int maxNumberOfMultiValueElements, int maxRowLengthInBytes, boolean 
onHeap,
         FieldSpec fieldSpec, boolean sorted, int cardinality, int 
totalNumberOfEntries,
-        int totalDocs, boolean hasDictionary) {
+        int totalDocs, boolean hasDictionary, Comparable<?> minValue, 
Comparable<?> maxValue) {
       _indexDir = indexDir;
       _lengthOfLongestEntry = lengthOfLongestEntry;
       _maxNumberOfMultiValueElements = maxNumberOfMultiValueElements;
@@ -183,6 +202,8 @@ public interface IndexCreationContext {
       _totalNumberOfEntries = totalNumberOfEntries;
       _totalDocs = totalDocs;
       _hasDictionary = hasDictionary;
+      _minValue = minValue;
+      _maxValue = maxValue;
     }
 
     public FieldSpec getFieldSpec() {
@@ -229,6 +250,16 @@ public interface IndexCreationContext {
       return _hasDictionary;
     }
 
+    @Override
+    public Comparable<?> getMinValue() {
+      return _minValue;
+    }
+
+    @Override
+    public Comparable<?> getMaxValue() {
+      return _maxValue;
+    }
+
     public BloomFilter forBloomFilter(BloomFilterConfig bloomFilterConfig) {
       return new BloomFilter(this, bloomFilterConfig);
     }
@@ -254,8 +285,8 @@ public interface IndexCreationContext {
       return new Json(this);
     }
 
-    public Range forRangeIndex(int rangeIndexVersion, Comparable<?> min, 
Comparable<?> max) {
-      return new Range(this, rangeIndexVersion, min, max);
+    public Range forRangeIndex(int rangeIndexVersion) {
+      return new Range(this, rangeIndexVersion);
     }
 
     public Text forTextIndex(boolean commitOnClose) {
@@ -325,6 +356,16 @@ public interface IndexCreationContext {
     public boolean hasDictionary() {
       return _delegate.hasDictionary();
     }
+
+    @Override
+    public Comparable getMinValue() {
+      return _delegate.getMinValue();
+    }
+
+    @Override
+    public Comparable getMaxValue() {
+      return _delegate.getMaxValue();
+    }
   }
 
   class BloomFilter extends Wrapper {
@@ -346,8 +387,7 @@ public interface IndexCreationContext {
     private final ChunkCompressionType _chunkCompressionType;
     private final Map<String, Map<String, String>> _columnProperties;
 
-    Forward(IndexCreationContext delegate,
-        ChunkCompressionType chunkCompressionType,
+    Forward(IndexCreationContext delegate, ChunkCompressionType 
chunkCompressionType,
         @Nullable Map<String, Map<String, String>> columnProperties) {
       super(delegate);
       _chunkCompressionType = chunkCompressionType;
@@ -393,25 +433,12 @@ public interface IndexCreationContext {
   }
 
   class Range extends Wrapper {
-
-    private final Comparable<?> _min;
-    private final Comparable<?> _max;
     private final int _rangeIndexVersion;
 
 
-    Range(IndexCreationContext delegate, int rangeIndexVersion, Comparable<?> 
min, Comparable<?> max) {
+    Range(IndexCreationContext delegate, int rangeIndexVersion) {
       super(delegate);
       _rangeIndexVersion = rangeIndexVersion;
-      _min = min;
-      _max = max;
-    }
-
-    public Comparable<?> getMin() {
-      return _min;
-    }
-
-    public Comparable<?> getMax() {
-      return _max;
     }
 
     public int getRangeIndexVersion() {

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to