@Override protected ColumnValueSelector selector(ColumnSelectorFactory metricFactory) { return metricFactory.makeColumnValueSelector(fieldName); }
private static ColumnValueSelector getColumnValueSelectorFromDimensionSpec( DimensionSpec dimSpec, ColumnSelectorFactory columnSelectorFactory ) { String dimName = dimSpec.getDimension(); ColumnCapabilities capabilities = columnSelectorFactory.getColumnCapabilities(dimName); capabilities = getEffectiveCapabilities(dimSpec, capabilities); switch (capabilities.getType()) { case STRING: return columnSelectorFactory.makeDimensionSelector(dimSpec); default: return columnSelectorFactory.makeColumnValueSelector(dimSpec.getDimension()); } }
@Override public DimensionSelector makeDimensionSelector(DimensionSpec dimensionSpec) { return delegate.makeDimensionSelector(dimensionSpec); }
@Override public Aggregator factorize(final ColumnSelectorFactory metricFactory) { if (metricColumns == null) { // input is sketches, use merge aggregator final BaseObjectColumnValueSelector<ArrayOfDoublesSketch> selector = metricFactory .makeColumnValueSelector(fieldName); if (selector instanceof NilColumnValueSelector) { return new ArrayOfDoublesSketchNoOpAggregator(numberOfValues); } return new ArrayOfDoublesSketchMergeAggregator(selector, nominalEntries, numberOfValues); } // input is raw data (key and array of values), use build aggregator final DimensionSelector keySelector = metricFactory .makeDimensionSelector(new DefaultDimensionSpec(fieldName, fieldName)); if (DimensionSelector.isNilSelector(keySelector)) { return new ArrayOfDoublesSketchNoOpAggregator(numberOfValues); } final List<BaseDoubleColumnValueSelector> valueSelectors = new ArrayList<>(); for (final String column : metricColumns) { final BaseDoubleColumnValueSelector valueSelector = metricFactory.makeColumnValueSelector(column); valueSelectors.add(valueSelector); } return new ArrayOfDoublesSketchBuildAggregator(keySelector, valueSelectors, nominalEntries); }
@Override public Aggregator factorize(final ColumnSelectorFactory metricFactory) { if (metricFactory.getColumnCapabilities(fieldName) != null && ValueType.isNumeric(metricFactory.getColumnCapabilities(fieldName).getType())) { final ColumnValueSelector<Double> selector = metricFactory.makeColumnValueSelector(fieldName); if (selector instanceof NilColumnValueSelector) { return new DoublesSketchNoOpAggregator(); } return new DoublesSketchBuildAggregator(selector, k); } final ColumnValueSelector<DoublesSketch> selector = metricFactory.makeColumnValueSelector(fieldName); if (selector instanceof NilColumnValueSelector) { return new DoublesSketchNoOpAggregator(); } return new DoublesSketchMergeAggregator(selector, k); }
final ColumnCapabilities capabilities = columnSelectorFactory.getColumnCapabilities(column); columnSelectorFactory.makeDimensionSelector(new DefaultDimensionSpec(column, column, ValueType.STRING)), expression );
@Nullable @Override public ColumnCapabilities getColumnCapabilities(String columnName) { return delegate.getColumnCapabilities(columnName); } }
private DimensionSelector makeDimensionSelector(final ColumnSelectorFactory columnFactory) { return columnFactory.makeDimensionSelector(new DefaultDimensionSpec(fieldName, fieldName)); }
.makeColumnValueSelector(fieldName); if (selector instanceof NilColumnValueSelector) { return new ArrayOfDoublesSketchNoOpBufferAggregator(numberOfValues); .makeDimensionSelector(new DefaultDimensionSpec(fieldName, fieldName)); if (DimensionSelector.isNilSelector(keySelector)) { return new ArrayOfDoublesSketchNoOpBufferAggregator(numberOfValues); final BaseDoubleColumnValueSelector valueSelector = metricFactory.makeColumnValueSelector(column); valueSelectors.add(valueSelector);
@Override public BufferAggregator factorizeBuffered(final ColumnSelectorFactory metricFactory) { if (metricFactory.getColumnCapabilities(fieldName) != null && ValueType.isNumeric(metricFactory.getColumnCapabilities(fieldName).getType())) { final ColumnValueSelector<Double> selector = metricFactory.makeColumnValueSelector(fieldName); if (selector instanceof NilColumnValueSelector) { return new DoublesSketchNoOpBufferAggregator(); } return new DoublesSketchBuildBufferAggregator(selector, k, getMaxIntermediateSizeWithNulls()); } final ColumnValueSelector<DoublesSketch> selector = metricFactory.makeColumnValueSelector(fieldName); if (selector instanceof NilColumnValueSelector) { return new DoublesSketchNoOpBufferAggregator(); } return new DoublesSketchMergeBufferAggregator(selector, k, getMaxIntermediateSizeWithNulls()); }
@Nullable @Override public ColumnCapabilities getColumnCapabilities(String columnName) { if (virtualColumns.exists(columnName)) { return virtualColumns.getColumnCapabilities(columnName); } else { return baseFactory.getColumnCapabilities(columnName); } } }
@Override protected ColumnValueSelector selector(ColumnSelectorFactory metricFactory) { return metricFactory.makeColumnValueSelector(fieldName); }
for (String columnName : columns) { final ColumnCapabilities columnCapabilities = columnSelectorFactory .getColumnCapabilities(columnName); final ValueType nativeType = columnCapabilities != null ? columnCapabilities.getType() : null; final Supplier<Object> supplier; .makeColumnValueSelector(columnName); supplier = makeNullableSupplier(selector, selector::getFloat); } else if (nativeType == ValueType.LONG) { ColumnValueSelector selector = columnSelectorFactory .makeColumnValueSelector(columnName); supplier = makeNullableSupplier(selector, selector::getLong); } else if (nativeType == ValueType.DOUBLE) { ColumnValueSelector selector = columnSelectorFactory .makeColumnValueSelector(columnName); supplier = makeNullableSupplier(selector, selector::getDouble); } else if (nativeType == ValueType.STRING) { supplier = supplierFromDimensionSelector( columnSelectorFactory .makeDimensionSelector(new DefaultDimensionSpec(columnName, columnName)) ); } else if (nativeType == null) { supplier = supplierFromObjectSelector(columnSelectorFactory.makeColumnValueSelector(columnName)); } else {
private static DimensionSelector makeDimensionSelector(Cursor cursor, String name) { return cursor.getColumnSelectorFactory().makeDimensionSelector(new DefaultDimensionSpec(name, null)); } }
final ColumnCapabilities capabilities = columnSelectorFactory.getColumnCapabilities(columnName); columnSelectorFactory.makeColumnValueSelector(columnName), predicateFactory.makeLongPredicate() );
strategyFactory, dimSpec, columnSelectorFactory.getColumnCapabilities(dimSpec.getDimension()), selector );
@Override protected ColumnValueSelector selector(ColumnSelectorFactory metricFactory) { return metricFactory.makeColumnValueSelector(fieldName); }
@Override public Aggregator factorize(ColumnSelectorFactory columnFactory) { BloomKFilter filter = new BloomKFilter(maxNumEntries); ColumnCapabilities capabilities = columnFactory.getColumnCapabilities(field.getDimension()); if (capabilities == null) { BaseNullableColumnValueSelector selector = columnFactory.makeColumnValueSelector(field.getDimension()); if (selector instanceof NilColumnValueSelector) { // BloomKFilter must be the same size so we cannot use a constant for the empty agg return new EmptyBloomFilterAggregator(filter); } throw new IAE( "Cannot create bloom filter buffer aggregator for column selector type [%s]", selector.getClass().getName() ); } ValueType type = capabilities.getType(); switch (type) { case STRING: return new StringBloomFilterAggregator(columnFactory.makeDimensionSelector(field), filter); case LONG: return new LongBloomFilterAggregator(columnFactory.makeColumnValueSelector(field.getDimension()), filter); case FLOAT: return new FloatBloomFilterAggregator(columnFactory.makeColumnValueSelector(field.getDimension()), filter); case DOUBLE: return new DoubleBloomFilterAggregator(columnFactory.makeColumnValueSelector(field.getDimension()), filter); default: throw new IAE("Cannot create bloom filter aggregator for invalid column type [%s]", type); } }
@Override public DimensionSelector makeDimensionSelector(DimensionSpec dimensionSpec) { if (virtualColumns.exists(dimensionSpec.getDimension())) { return virtualColumns.makeDimensionSelector(dimensionSpec, baseFactory); } else { return baseFactory.makeDimensionSelector(dimensionSpec); } }
@Override protected BaseObjectColumnValueSelector selector(ColumnSelectorFactory metricFactory) { return metricFactory.makeColumnValueSelector(fieldName); }