use of com.facebook.presto.metadata.Signature in project presto by prestodb.
the class TestMinMaxByAggregation method testMinDoubleDouble.
@Test
public void testMinDoubleDouble() throws Exception {
InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("min_by", AGGREGATE, parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.DOUBLE)));
assertAggregation(function, null, createDoublesBlock(null, null), createDoublesBlock(null, null));
assertAggregation(function, 3.0, createDoublesBlock(3.0, 2.0, 5.0, 3.0), createDoublesBlock(1.0, 1.5, 2.0, 4.0));
}
use of com.facebook.presto.metadata.Signature in project presto by prestodb.
the class TestMinMaxByAggregation method testMaxDoubleVarchar.
@Test
public void testMaxDoubleVarchar() {
InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("max_by", AGGREGATE, parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.DOUBLE)));
assertAggregation(function, "a", createStringsBlock("z", "a", null), createDoublesBlock(1.0, 2.0, null));
assertAggregation(function, "hi", createStringsBlock("zz", "hi", null, "a"), createDoublesBlock(0.0, 1.0, null, -1.0));
}
use of com.facebook.presto.metadata.Signature in project presto by prestodb.
the class TestMinMaxByAggregation method testMinNull.
@Test
public void testMinNull() {
InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("min_by", AGGREGATE, parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.DOUBLE)));
assertAggregation(function, 1.0, createDoublesBlock(1.0, null), createDoublesBlock(1.0, 2.0));
assertAggregation(function, 10.0, createDoublesBlock(10.0, 9.0, 8.0, 11.0), createDoublesBlock(1.0, null, 2.0, null));
}
use of com.facebook.presto.metadata.Signature in project presto by prestodb.
the class TestMinMaxByAggregation method testAllRegistered.
@Test
public void testAllRegistered() {
Set<Type> orderableTypes = getTypes().stream().filter(Type::isOrderable).collect(toImmutableSet());
for (Type keyType : orderableTypes) {
for (Type valueType : getTypes()) {
if (StateCompiler.getSupportedFieldTypes().contains(valueType.getJavaType())) {
assertNotNull(METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("min_by", AGGREGATE, valueType.getTypeSignature(), valueType.getTypeSignature(), keyType.getTypeSignature())));
assertNotNull(METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("max_by", AGGREGATE, valueType.getTypeSignature(), valueType.getTypeSignature(), keyType.getTypeSignature())));
}
}
}
}
use of com.facebook.presto.metadata.Signature in project presto by prestodb.
the class TestMinMaxByAggregation method testMinDoubleVarchar.
@Test
public void testMinDoubleVarchar() {
InternalAggregationFunction function = METADATA.getFunctionRegistry().getAggregateFunctionImplementation(new Signature("min_by", AGGREGATE, parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.VARCHAR), parseTypeSignature(StandardTypes.DOUBLE)));
assertAggregation(function, "z", createStringsBlock("z", "a", "x", "b"), createDoublesBlock(1.0, 2.0, 2.0, 3.0));
assertAggregation(function, "a", createStringsBlock("zz", "hi", "bb", "a"), createDoublesBlock(0.0, 1.0, 2.0, -1.0));
}
Aggregations