public ColumnCapabilities getColumnCapabilitiesWithFallback(StorageAdapter adapter, String columnName) { final ColumnCapabilities virtualColumnCapabilities = getColumnCapabilities(columnName); if (virtualColumnCapabilities != null) { return virtualColumnCapabilities; } else { return adapter.getColumnCapabilities(columnName); } }
/** * Split the given dimensions list into bitmap-supporting dimensions and non-bitmap supporting ones. * Note that the returned lists are free to modify. */ private static Pair<List<DimensionSpec>, List<DimensionSpec>> partitionDimensionList( StorageAdapter adapter, List<DimensionSpec> dimensions ) { final List<DimensionSpec> bitmapDims = new ArrayList<>(); final List<DimensionSpec> nonBitmapDims = new ArrayList<>(); final List<DimensionSpec> dimsToSearch = getDimsToSearch( adapter.getAvailableDimensions(), dimensions ); for (DimensionSpec spec : dimsToSearch) { ColumnCapabilities capabilities = adapter.getColumnCapabilities(spec.getDimension()); if (capabilities == null) { continue; } if (capabilities.hasBitmapIndexes()) { bitmapDims.add(spec); } else { nonBitmapDims.add(spec); } } return new Pair<>(bitmapDims, nonBitmapDims); }
cardinality = 1; } else if (dims.length == 1) { columnCapabilities = storageAdapter.getColumnCapabilities(dims[0].getName()); cardinality = storageAdapter.getDimensionCardinality(dims[0].getName()); } else {
final ColumnCapabilities capabilities = columnHolder != null ? columnHolder.getCapabilities() : storageAdapter.getColumnCapabilities(columnName); ColumnCapabilities timeCapabilities = storageAdapter.getColumnCapabilities(ColumnHolder.TIME_COLUMN_NAME); if (timeCapabilities == null) { timeCapabilities = new ColumnCapabilitiesImpl().setType(ValueType.LONG).setHasMultipleValues(false);
private List<String> selectColumnValuesMatchingFilterUsingRowBasedColumnSelectorFactory( final DimFilter filter, final String selectColumn ) { // Generate rowType final Map<String, ValueType> rowSignature = new HashMap<>(); for (String columnName : Iterables.concat(adapter.getAvailableDimensions(), adapter.getAvailableMetrics())) { rowSignature.put(columnName, adapter.getColumnCapabilities(columnName).getType()); } // Perform test final SettableSupplier<InputRow> rowSupplier = new SettableSupplier<>(); final ValueMatcher matcher = makeFilter(filter).makeMatcher( VIRTUAL_COLUMNS.wrap(RowBasedColumnSelectorFactory.create(rowSupplier, rowSignature)) ); final List<String> values = new ArrayList<>(); for (InputRow row : rows) { rowSupplier.set(row); if (matcher.matches()) { values.add((String) row.getRaw(selectColumn)); } } return values; }
.stream() .allMatch(dimension -> { final ColumnCapabilities columnCapabilities = storageAdapter.getColumnCapabilities(dimension.getDimension()); return columnCapabilities != null && !columnCapabilities.hasMultipleValues(); });
public ColumnCapabilities getColumnCapabilitiesWithFallback(StorageAdapter adapter, String columnName) { final ColumnCapabilities virtualColumnCapabilities = getColumnCapabilities(columnName); if (virtualColumnCapabilities != null) { return virtualColumnCapabilities; } else { return adapter.getColumnCapabilities(columnName); } }
private static Pair<List<DimensionSpec>, List<DimensionSpec>> partitionDimensionList( StorageAdapter adapter, List<DimensionSpec> dimensions ) { final List<DimensionSpec> bitmapDims = Lists.newArrayList(); final List<DimensionSpec> nonBitmapDims = Lists.newArrayList(); final List<DimensionSpec> dimsToSearch = getDimsToSearch( adapter.getAvailableDimensions(), dimensions ); for (DimensionSpec spec : dimsToSearch) { ColumnCapabilities capabilities = adapter.getColumnCapabilities(spec.getDimension()); if (capabilities == null) { continue; } if (capabilities.hasBitmapIndexes()) { bitmapDims.add(spec); } else { nonBitmapDims.add(spec); } } return new Pair<List<DimensionSpec>, List<DimensionSpec>>( ImmutableList.copyOf(bitmapDims), ImmutableList.copyOf(nonBitmapDims) ); }
cardinality = 1; } else if (dims.length == 1) { columnCapabilities = storageAdapter.getColumnCapabilities(dims[0].getName()); cardinality = storageAdapter.getDimensionCardinality(dims[0].getName()); } else {
final ColumnCapabilities capabilities = columnHolder != null ? columnHolder.getCapabilities() : storageAdapter.getColumnCapabilities(columnName); ColumnCapabilities timeCapabilities = storageAdapter.getColumnCapabilities(ColumnHolder.TIME_COLUMN_NAME); if (timeCapabilities == null) { timeCapabilities = new ColumnCapabilitiesImpl().setType(ValueType.LONG).setHasMultipleValues(false);
.stream() .allMatch(dimension -> { final ColumnCapabilities columnCapabilities = storageAdapter.getColumnCapabilities(dimension.getDimension()); return columnCapabilities != null && !columnCapabilities.hasMultipleValues(); });