@VisibleForTesting BitmapValues getBitmapIndex(String dimension, String value) { final ColumnHolder columnHolder = input.getColumnHolder(dimension); if (columnHolder == null) { return BitmapValues.EMPTY; } final BitmapIndex bitmaps = columnHolder.getBitmapIndex(); if (bitmaps == null) { return BitmapValues.EMPTY; } return new ImmutableBitmapValues(bitmaps.getBitmap(bitmaps.getIndex(value))); }
private static long computeTotalCard(final QueryableIndex index, final Iterable<DimensionSpec> dimensionSpecs) { long totalCard = 0; for (DimensionSpec dimension : dimensionSpecs) { final ColumnHolder columnHolder = index.getColumnHolder(dimension.getDimension()); if (columnHolder != null) { final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); if (bitmapIndex != null) { totalCard += bitmapIndex.getCardinality(); } } } return totalCard; } }
@Override @Nullable public Comparable getMinValue(String dimension) { ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder != null && columnHolder.getCapabilities().hasBitmapIndexes()) { BitmapIndex bitmap = columnHolder.getBitmapIndex(); return bitmap.getCardinality() > 0 ? bitmap.getValue(0) : null; } return null; }
@Override public BitmapValues getBitmapValues(String dimension, int dictId) { final ColumnHolder columnHolder = input.getColumnHolder(dimension); if (columnHolder == null) { return BitmapValues.EMPTY; } final BitmapIndex bitmaps = columnHolder.getBitmapIndex(); if (bitmaps == null) { return BitmapValues.EMPTY; } if (dictId >= 0) { return new ImmutableBitmapValues(bitmaps.getBitmap(dictId)); } else { return BitmapValues.EMPTY; } }
@Override @Nullable public Comparable getMaxValue(String dimension) { ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder != null && columnHolder.getCapabilities().hasBitmapIndexes()) { BitmapIndex bitmap = columnHolder.getBitmapIndex(); return bitmap.getCardinality() > 0 ? bitmap.getValue(bitmap.getCardinality() - 1) : null; } return null; }
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex();
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex();
return columnHolder.getBitmapIndex(); } else { return null;
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); Preconditions.checkArgument(bitmapIndex != null, "Dimension [%s] should support bitmap index", dimension.getDimension()
@Override public ImmutableBitmap getBitmapIndex(String dimension, String value) { if (isVirtualColumn(dimension)) { // Virtual columns don't have dictionaries or indexes. return null; } final ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder == null || !columnHolder.getCapabilities().isFilterable()) { if (NullHandling.isNullOrEquivalent(value)) { return bitmapFactory.complement(bitmapFactory.makeEmptyImmutableBitmap(), getNumRows()); } else { return bitmapFactory.makeEmptyImmutableBitmap(); } } if (!columnHolder.getCapabilities().hasBitmapIndexes()) { return null; } final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); return bitmapIndex.getBitmap(bitmapIndex.getIndex(value)); }
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); final int cardinality = bitmapIndex.getCardinality();
@VisibleForTesting BitmapValues getBitmapIndex(String dimension, String value) { final ColumnHolder columnHolder = input.getColumnHolder(dimension); if (columnHolder == null) { return BitmapValues.EMPTY; } final BitmapIndex bitmaps = columnHolder.getBitmapIndex(); if (bitmaps == null) { return BitmapValues.EMPTY; } return new ImmutableBitmapValues(bitmaps.getBitmap(bitmaps.getIndex(value))); }
private static long computeTotalCard(final QueryableIndex index, final Iterable<DimensionSpec> dimensionSpecs) { long totalCard = 0; for (DimensionSpec dimension : dimensionSpecs) { final ColumnHolder columnHolder = index.getColumnHolder(dimension.getDimension()); if (columnHolder != null) { final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); if (bitmapIndex != null) { totalCard += bitmapIndex.getCardinality(); } } } return totalCard; } }
@Override @Nullable public Comparable getMinValue(String dimension) { ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder != null && columnHolder.getCapabilities().hasBitmapIndexes()) { BitmapIndex bitmap = columnHolder.getBitmapIndex(); return bitmap.getCardinality() > 0 ? bitmap.getValue(0) : null; } return null; }
@Override public BitmapValues getBitmapValues(String dimension, int dictId) { final ColumnHolder columnHolder = input.getColumnHolder(dimension); if (columnHolder == null) { return BitmapValues.EMPTY; } final BitmapIndex bitmaps = columnHolder.getBitmapIndex(); if (bitmaps == null) { return BitmapValues.EMPTY; } if (dictId >= 0) { return new ImmutableBitmapValues(bitmaps.getBitmap(dictId)); } else { return BitmapValues.EMPTY; } }
@Override @Nullable public Comparable getMaxValue(String dimension) { ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder != null && columnHolder.getCapabilities().hasBitmapIndexes()) { BitmapIndex bitmap = columnHolder.getBitmapIndex(); return bitmap.getCardinality() > 0 ? bitmap.getValue(bitmap.getCardinality() - 1) : null; } return null; }
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex();
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); Preconditions.checkArgument(bitmapIndex != null, "Dimension [%s] should support bitmap index", dimension.getDimension()
@Override public ImmutableBitmap getBitmapIndex(String dimension, String value) { if (isVirtualColumn(dimension)) { // Virtual columns don't have dictionaries or indexes. return null; } final ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder == null || !columnHolder.getCapabilities().isFilterable()) { if (NullHandling.isNullOrEquivalent(value)) { return bitmapFactory.complement(bitmapFactory.makeEmptyImmutableBitmap(), getNumRows()); } else { return bitmapFactory.makeEmptyImmutableBitmap(); } } if (!columnHolder.getCapabilities().hasBitmapIndexes()) { return null; } final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); return bitmapIndex.getBitmap(bitmapIndex.getIndex(value)); }
final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex(); final int cardinality = bitmapIndex.getCardinality();