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