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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]