@Override public ImmutableBitmap getBitmapIndex(String dimension, String value) { return bitmapIndex.getBitmap(bitmapIndex.getIndex(value)); }
@Override public ImmutableBitmap getBitmapIndex(String dimension, String value) { return bitmapIndex.getBitmap(bitmapIndex.getIndex(value)); }
@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))); }
/** * Return an estimated selectivity for bitmaps for the dimension values given by dimValueIndexes. * * @param bitmapIndex bitmap index * @param bitmaps bitmaps to extract, by index * @param totalNumRows number of rows in the column associated with this bitmap index * * @return estimated selectivity */ public static double estimateSelectivity( final BitmapIndex bitmapIndex, final IntList bitmaps, final long totalNumRows ) { long numMatchedRows = 0; for (int i = 0; i < bitmaps.size(); i++) { final ImmutableBitmap bitmap = bitmapIndex.getBitmap(bitmaps.getInt(i)); numMatchedRows += bitmap.size(); } return Math.min(1., (double) numMatchedRows / totalNumRows); }
@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; } }
String val = NullHandling.nullToEmptyIfNeeded(bitmapIndex.getValue(i)); if (val != null) { final ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); if (decompressBitmaps) { jg.writeStartArray();
Assert.assertEquals(subsetList.toString(), 0, bitmapIndex.getIndex(null)); final ImmutableBitmap nullBitmap = bitmapIndex.getBitmap(bitmapIndex.getIndex(null)); final List<Integer> actualNullRows = new ArrayList<>(); final IntIterator iterator = nullBitmap.iterator();
continue; ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); if (timeFilteredBitmap != null) { bitmap = bitmapFactory.intersection(Arrays.asList(timeFilteredBitmap, bitmap));
@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)); }
String value = bitmapIndex.getValue(i); if (value != null) { size += StringUtils.estimatedBinaryLengthAsUTF8(value) * bitmapIndex.getBitmap(bitmapIndex.getIndex(value)).size();
@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))); }
/** * Return an estimated selectivity for bitmaps for the dimension values given by dimValueIndexes. * * @param bitmapIndex bitmap index * @param bitmaps bitmaps to extract, by index * @param totalNumRows number of rows in the column associated with this bitmap index * * @return estimated selectivity */ public static double estimateSelectivity( final BitmapIndex bitmapIndex, final IntList bitmaps, final long totalNumRows ) { long numMatchedRows = 0; for (int i = 0; i < bitmaps.size(); i++) { final ImmutableBitmap bitmap = bitmapIndex.getBitmap(bitmaps.getInt(i)); numMatchedRows += bitmap.size(); } return Math.min(1., (double) numMatchedRows / totalNumRows); }
@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; } }
String val = NullHandling.nullToEmptyIfNeeded(bitmapIndex.getValue(i)); if (val != null) { final ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); if (decompressBitmaps) { jg.writeStartArray();
continue; ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); if (timeFilteredBitmap != null) { bitmap = bitmapFactory.intersection(Arrays.asList(timeFilteredBitmap, bitmap));
@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)); }
String value = bitmapIndex.getValue(i); if (value != null) { size += StringUtils.estimatedBinaryLengthAsUTF8(value) * bitmapIndex.getBitmap(bitmapIndex.getIndex(value)).size();