protected AbstractMinMaxAggregationFunction(String name, boolean min) { super(name, ImmutableList.of(orderableTypeParameter("E")), ImmutableList.of(), parseTypeSignature("E"), ImmutableList.of(parseTypeSignature("E"))); this.min = min; this.operatorType = min ? LESS_THAN : GREATER_THAN; }
protected AbstractMinMaxAggregationFunction(String name, boolean min) { super(name, ImmutableList.of(orderableTypeParameter("E")), ImmutableList.of(), parseTypeSignature("E"), ImmutableList.of(parseTypeSignature("E"))); this.min = min; this.operatorType = min ? LESS_THAN : GREATER_THAN; }
protected AbstractMinMaxNAggregationFunction(String name, Function<Type, BlockComparator> typeToComparator) { super(name, ImmutableList.of(orderableTypeParameter("E")), ImmutableList.of(), parseTypeSignature("array(E)"), ImmutableList.of(parseTypeSignature("E"), parseTypeSignature(StandardTypes.BIGINT))); requireNonNull(typeToComparator); this.typeToComparator = typeToComparator; }
protected AbstractGreatestLeast(String name, OperatorType operatorType) { super(new Signature( name, FunctionKind.SCALAR, ImmutableList.of(orderableTypeParameter("E")), ImmutableList.of(), parseTypeSignature("E"), ImmutableList.of(parseTypeSignature("E")), true)); this.operatorType = requireNonNull(operatorType, "operatorType is null"); }
protected AbstractGreatestLeast(String name, OperatorType operatorType) { super(new Signature( name, FunctionKind.SCALAR, ImmutableList.of(orderableTypeParameter("E")), ImmutableList.of(), parseTypeSignature("E"), ImmutableList.of(parseTypeSignature("E")), true)); this.operatorType = requireNonNull(operatorType, "operatorType is null"); }
protected AbstractMinMaxNAggregationFunction(String name, Function<Type, BlockComparator> typeToComparator) { super(name, ImmutableList.of(orderableTypeParameter("E")), ImmutableList.of(), parseTypeSignature("array(E)"), ImmutableList.of(parseTypeSignature("E"), parseTypeSignature(StandardTypes.BIGINT))); requireNonNull(typeToComparator); this.typeToComparator = typeToComparator; }
protected AbstractMinMaxBy(boolean min) { super((min ? "min" : "max") + "_by", ImmutableList.of(orderableTypeParameter("K"), typeVariable("V")), ImmutableList.of(), parseTypeSignature("V"), ImmutableList.of(parseTypeSignature("V"), parseTypeSignature("K"))); this.min = min; }
protected AbstractMinMaxByNAggregationFunction(String name, Function<Type, BlockComparator> typeToComparator) { super(name, ImmutableList.of(typeVariable("V"), orderableTypeParameter("K")), ImmutableList.of(), parseTypeSignature("array(V)"), ImmutableList.of(parseTypeSignature("V"), parseTypeSignature("K"), parseTypeSignature(StandardTypes.BIGINT))); this.name = requireNonNull(name, "name is null"); this.typeToComparator = requireNonNull(typeToComparator, "typeToComparator is null"); }
protected AbstractMinMaxBy(boolean min) { super((min ? "min" : "max") + "_by", ImmutableList.of(orderableTypeParameter("K"), typeVariable("V")), ImmutableList.of(), parseTypeSignature("V"), ImmutableList.of(parseTypeSignature("V"), parseTypeSignature("K"))); this.min = min; }
protected AbstractMinMaxByNAggregationFunction(String name, Function<Type, BlockComparator> typeToComparator) { super(name, ImmutableList.of(typeVariable("V"), orderableTypeParameter("K")), ImmutableList.of(), parseTypeSignature("array(V)"), ImmutableList.of(parseTypeSignature("V"), parseTypeSignature("K"), parseTypeSignature(StandardTypes.BIGINT))); this.name = requireNonNull(name, "name is null"); this.typeToComparator = requireNonNull(typeToComparator, "typeToComparator is null"); }
String name = typeParameter.value(); if (orderableRequired.contains(name)) { typeVariableConstraints.add(orderableTypeParameter(name));
String name = typeParameter.value(); if (orderableRequired.contains(name)) { typeVariableConstraints.add(orderableTypeParameter(name));
.returnType(parseTypeSignature("array(T)")) .argumentTypes(parseTypeSignature("array(T)"), parseTypeSignature("function(T,E)")) .typeVariableConstraints(typeVariable("T"), orderableTypeParameter("E")) .build(); assertThat(sortByKey)
.returnType(parseTypeSignature("array(T)")) .argumentTypes(parseTypeSignature("array(T)"), parseTypeSignature("function(T,E)")) .typeVariableConstraints(typeVariable("T"), orderableTypeParameter("E")) .build(); assertThat(sortByKey)