Skip to content

Instantly share code, notes, and snippets.

@quodt
Created April 11, 2014 09:22
Show Gist options
  • Save quodt/10452938 to your computer and use it in GitHub Desktop.
Save quodt/10452938 to your computer and use it in GitHub Desktop.
import io.crate.udf.UserDefinedScalarFunction
import io.crate.operation.aggregation.AggregationState
import io.crate.DataType
import io.crate.metadata.FunctionIdent
import io.crate.metadata.FunctionInfo
import io.crate.metadata.DynamicFunctionResolver
import io.crate.planner.symbol.Symbol
import io.crate.operation.Input
import java.util.Arrays
import java.lang.Long
class GroovyMathMin extends UserDefinedScalarFunction<Long, Long> {
def String name() {
return 'groovy_math_min'
}
def FunctionIdent ident() {
return FunctionIdent(name(),
Arrays.asList(DataType.LONG, DataType.LONG))
}
def FunctionInfo info() {
return FunctionInfo(ident(), DataType.LONG)
}
def Symbol normalizeSymbol(Symbol symbol) {
return symbol
}
def DynamicFunctionResolver dynamicFunctionResolver() {
return null
}
def Long evaluate(Input<Long> ... args) {
return new Long([args[0].value(), args[1].value()].min())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment