Package org.apache.druid.segment.index
Class DictionaryRangeScanningBitmapIndex
- java.lang.Object
-
- org.apache.druid.segment.index.SimpleBitmapColumnIndex
-
- org.apache.druid.segment.index.SimpleImmutableBitmapDelegatingIterableIndex
-
- org.apache.druid.segment.index.DictionaryRangeScanningBitmapIndex
-
- All Implemented Interfaces:
BitmapColumnIndex
public abstract class DictionaryRangeScanningBitmapIndex extends SimpleImmutableBitmapDelegatingIterableIndex
CommonBitmapColumnIndeximplementation for indexes which need to scan a range of values. Contains logic to skip computing indexes withcomputeBitmapResult(BitmapResultFactory, int, int, boolean)ifrangeSizeis larger thansizeScalemultiplied by the number of selected rows. Numeric range indexes will typically want to setsizeScaleto a double closer to 0.0 than to 1.0 because numeric comparisons are relatively cheap compared to bitmap operations. Most numerical implementations should use the value ofColumnConfig.skipValueRangeIndexScale().Other implementations should adjust
sizeScaleas appropriate for the expense of the value matcher compared to the expense of the bitmap operations.
-
-
Field Summary
-
Fields inherited from class org.apache.druid.segment.index.SimpleBitmapColumnIndex
CAPABILITIES
-
-
Constructor Summary
Constructors Constructor Description DictionaryRangeScanningBitmapIndex(double sizeScale, int rangeSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TcomputeBitmapResult(BitmapResultFactory<T> bitmapResultFactory, int applyRowCount, int totalRowCount, boolean includeUnknown)Compute a bitmap result wrapped with theBitmapResultFactoryrepresenting the rows matched by this index, or null if the index cannot (or should not) be computed.-
Methods inherited from class org.apache.druid.segment.index.SimpleImmutableBitmapDelegatingIterableIndex
computeBitmapResult, getBitmapIterable, getUnknownsBitmap
-
Methods inherited from class org.apache.druid.segment.index.SimpleBitmapColumnIndex
getIndexCapabilities
-
-
-
-
Method Detail
-
computeBitmapResult
@Nullable public final <T> T computeBitmapResult(BitmapResultFactory<T> bitmapResultFactory, int applyRowCount, int totalRowCount, boolean includeUnknown)
Description copied from interface:BitmapColumnIndexCompute a bitmap result wrapped with theBitmapResultFactoryrepresenting the rows matched by this index, or null if the index cannot (or should not) be computed.- Parameters:
bitmapResultFactory- helper to format theImmutableBitmapin a form ready for consumption by callersapplyRowCount- upper bound on number of rows this filter would be applied to, after removing rows short-circuited by prior bundle operations. For example, given "x AND y", if "x" is resolved using an index, then "y" will receive the number of rows that matched the filter "x". As another example, given "x OR y", if "x" is resolved using an index, then "y" will receive the number of rows that did *not* match the filter "x".totalRowCount- total number of rows to be scanned if no indexes are usedincludeUnknown- mapping for Druid native two state logic system into SQL three-state logic system. If set to true, bitmaps returned by this method should include true bits for any rows where the matching result is 'unknown', such as from the input being null valued. SeeNullHandling.useThreeValueLogic().- Returns:
- bitmap result representing rows matched by this index
-
-