Search in sources :

Example 6 with ArrayBasedIndexedInts

use of org.apache.druid.segment.data.ArrayBasedIndexedInts in project druid by druid-io.

the class CardinalityVectorAggregatorTest method testAggregateMultiValueString.

@Test
public void testAggregateMultiValueString() {
    final IndexedInts[] ids = { new ArrayBasedIndexedInts(new int[] { 1, 2 }), new ArrayBasedIndexedInts(new int[] { 2, 3 }), new ArrayBasedIndexedInts(new int[] { 3, 3 }), new ArrayBasedIndexedInts(new int[] { 0 }) };
    final String[] dict = { null, "abc", "def", "foo" };
    final CardinalityVectorAggregator aggregator = new CardinalityVectorAggregator(Collections.singletonList(new MultiValueStringCardinalityVectorProcessor(new MultiValueDimensionVectorSelector() {

        @Override
        public IndexedInts[] getRowVector() {
            return ids;
        }

        @Override
        public int getValueCardinality() {
            return dict.length;
        }

        @Nullable
        @Override
        public String lookupName(int id) {
            return dict[id];
        }

        @Override
        public boolean nameLookupPossibleInAdvance() {
            return true;
        }

        @Nullable
        @Override
        public IdLookup idLookup() {
            return null;
        }

        @Override
        public int getMaxVectorSize() {
            return ids.length;
        }

        @Override
        public int getCurrentVectorSize() {
            return ids.length;
        }
    })));
    testAggregate(aggregator, ids.length, NullHandling.replaceWithDefault() ? 4 : 3);
}
Also used : IdLookup(org.apache.druid.segment.IdLookup) MultiValueDimensionVectorSelector(org.apache.druid.segment.vector.MultiValueDimensionVectorSelector) ArrayBasedIndexedInts(org.apache.druid.segment.data.ArrayBasedIndexedInts) MultiValueStringCardinalityVectorProcessor(org.apache.druid.query.aggregation.cardinality.vector.MultiValueStringCardinalityVectorProcessor) IndexedInts(org.apache.druid.segment.data.IndexedInts) ArrayBasedIndexedInts(org.apache.druid.segment.data.ArrayBasedIndexedInts) Nullable(javax.annotation.Nullable) InitializedNullHandlingTest(org.apache.druid.testing.InitializedNullHandlingTest) Test(org.junit.Test)

Aggregations

ArrayBasedIndexedInts (org.apache.druid.segment.data.ArrayBasedIndexedInts)6 IndexedInts (org.apache.druid.segment.data.IndexedInts)3 Test (org.junit.Test)3 DefaultDimensionSpec (org.apache.druid.query.dimension.DefaultDimensionSpec)2 DimensionSpec (org.apache.druid.query.dimension.DimensionSpec)2 JoinConditionAnalysis (org.apache.druid.segment.join.JoinConditionAnalysis)2 MultiValueDimensionVectorSelector (org.apache.druid.segment.vector.MultiValueDimensionVectorSelector)2 Predicate (com.google.common.base.Predicate)1 BitSet (java.util.BitSet)1 Nullable (javax.annotation.Nullable)1 ISE (org.apache.druid.java.util.common.ISE)1 MultiValueStringCardinalityVectorProcessor (org.apache.druid.query.aggregation.cardinality.vector.MultiValueStringCardinalityVectorProcessor)1 ExtractionFn (org.apache.druid.query.extraction.ExtractionFn)1 ValueMatcher (org.apache.druid.query.filter.ValueMatcher)1 RuntimeShapeInspector (org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector)1 DimensionSelector (org.apache.druid.segment.DimensionSelector)1 IdLookup (org.apache.druid.segment.IdLookup)1 BooleanValueMatcher (org.apache.druid.segment.filter.BooleanValueMatcher)1 IncrementalIndexRow (org.apache.druid.segment.incremental.IncrementalIndexRow)1 VectorSizeInspector (org.apache.druid.segment.vector.VectorSizeInspector)1