@Override public DimFilter optimize() { return new NotDimFilter(this.getField().optimize()); }
@Override public boolean supportsBitmapIndex(BitmapIndexSelector selector) { return selector.getBitmapIndex(boundDimFilter.getDimension()) != null; }
public TopNQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }
@Override public Filter toFilter() { return new SelectorDimFilter(dimension, value, extractionFn).toFilter(); }
public static BoundDimFilter BOUND( final String fieldName, final String lower, final String upper, final boolean lowerStrict, final boolean upperStrict, final ExtractionFn extractionFn, final StringComparator comparator ) { return new BoundDimFilter(fieldName, lower, upper, lowerStrict, upperStrict, null, extractionFn, comparator); }
@Override public HashSet<String> getRequiredColumns() { return field.getRequiredColumns(); }
@Override public boolean matches() { return !baseMatcher.matches(); }
@Override public Predicate<String> makeStringPredicate() { return str -> { if (str == null) { return bloomKFilter.testBytes(null, 0, 0); } return bloomKFilter.testString(str); }; }
/** * ByteBuffer based copy of {@link BloomKFilter#addInt(int)} that adds a value to the ByteBuffer in place. */ public static void addInt(ByteBuffer buffer, int val) { addBytes(buffer, intToByteArrayLE(val)); }
@Override public boolean supportsSelectivityEstimation(ColumnSelector columnSelector, BitmapIndexSelector indexSelector) { for (Filter filter : filters) { if (!filter.supportsSelectivityEstimation(columnSelector, indexSelector)) { return false; } } return true; }
@Override public double estimateSelectivity(BitmapIndexSelector indexSelector) { return 1. - baseFilter.estimateSelectivity(indexSelector); }
@Override public DruidFloatPredicate get() { initFloatValues(); return predicate; } };
@Override public boolean supportsBitmapIndex(BitmapIndexSelector selector) { return selector.getBitmapIndex(dimension) != null; }
@Override public DruidDoublePredicate get() { initDoubleValues(); return predicate; } };
@Override public Filter toFilter() { return convertedFilter.toFilter(); }
public TimeseriesQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }
@Override public boolean matches() { for (ValueMatcher matcher : baseMatchers) { if (!matcher.matches()) { return false; } } return true; }
@Override public boolean supportsSelectivityEstimation(ColumnSelector columnSelector, BitmapIndexSelector indexSelector) { return baseFilter.supportsSelectivityEstimation(columnSelector, indexSelector); }
@Override public double estimateSelectivity(BitmapIndexSelector indexSelector) { // Estimate selectivity with attribute value independence assumption double selectivity = 1.0; for (final Filter filter : filters) { selectivity *= filter.estimateSelectivity(indexSelector); } return selectivity; }
public TimeBoundaryQueryBuilder filters(String dimensionName, String value) { dimFilter = new SelectorDimFilter(dimensionName, value, null); return this; }