public final class FunctionRegistry
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
LAG_FUNC_NAME |
static java.lang.String |
LAST_VALUE_FUNC_NAME |
static java.lang.String |
LEAD_FUNC_NAME |
static java.lang.String |
NOOP_MAP_TABLE_FUNCTION |
static java.lang.String |
NOOP_TABLE_FUNCTION |
static java.lang.String |
WINDOWING_TABLE_FUNCTION |
Modifier and Type | Method and Description |
---|---|
static GenericUDF |
cloneGenericUDF(GenericUDF genericUDF)
Create a copy of an existing GenericUDF.
|
static GenericUDTF |
cloneGenericUDTF(GenericUDTF genericUDTF)
Create a copy of an existing GenericUDTF.
|
static TypeInfo |
getCommonClass(TypeInfo a,
TypeInfo b)
Find a common class that objects of both TypeInfo a and TypeInfo b can
convert to.
|
static TypeInfo |
getCommonClassForComparison(TypeInfo a,
TypeInfo b)
Find a common class that objects of both TypeInfo a and TypeInfo b can
convert to.
|
static TypeInfo |
getCommonClassForUnionAll(TypeInfo a,
TypeInfo b)
Find a common class for union-all operator
|
static FunctionInfo |
getFunctionInfo(java.lang.String functionName) |
static java.util.Set<java.lang.String> |
getFunctionNames()
Returns a set of registered function names.
|
static java.util.Set<java.lang.String> |
getFunctionNames(java.lang.String funcPatternStr)
Returns a set of registered function names.
|
static java.util.Set<java.lang.String> |
getFunctionSynonyms(java.lang.String funcName)
Returns the set of synonyms of the supplied function.
|
static GenericUDAFEvaluator |
getGenericUDAFEvaluator(java.lang.String name,
java.util.List<ObjectInspector> argumentOIs,
boolean isDistinct,
boolean isAllColumns)
Get the GenericUDAF evaluator for the name and argumentClasses.
|
static GenericUDAFResolver |
getGenericUDAFResolver(java.lang.String functionName) |
static GenericUDF |
getGenericUDFForAnd()
A shortcut to get the "and" GenericUDF.
|
static GenericUDF |
getGenericUDFForIndex()
A shortcut to get the "index" GenericUDF.
|
static GenericUDAFEvaluator |
getGenericWindowingEvaluator(java.lang.String name,
java.util.List<ObjectInspector> argumentOIs,
boolean isDistinct,
boolean isAllColumns) |
static java.lang.reflect.Method |
getMethodInternal(java.lang.Class<?> udfClass,
java.util.List<java.lang.reflect.Method> mlist,
boolean exact,
java.util.List<TypeInfo> argumentsPassed)
Gets the closest matching method corresponding to the argument list from a
list of methods.
|
static <T> java.lang.reflect.Method |
getMethodInternal(java.lang.Class<? extends T> udfClass,
java.lang.String methodName,
boolean exact,
java.util.List<TypeInfo> argumentClasses)
This method is shared between UDFRegistry and UDAFRegistry.
|
static TableFunctionResolver |
getNoopTableFunction() |
static TableFunctionResolver |
getTableFunctionResolver(java.lang.String name) |
static TypeInfo |
getTypeInfoForPrimitiveCategory(PrimitiveTypeInfo a,
PrimitiveTypeInfo b,
PrimitiveObjectInspector.PrimitiveCategory typeCategory)
Given 2 TypeInfo types and the PrimitiveCategory selected as the common class between the two,
return a TypeInfo corresponding to the common PrimitiveCategory, and with type qualifiers
(if applicable) that match the 2 TypeInfo types.
|
static WindowFunctionInfo |
getWindowFunctionInfo(java.lang.String name) |
static TableFunctionResolver |
getWindowingTableFunction() |
static boolean |
implicitConvertable(PrimitiveObjectInspector.PrimitiveCategory from,
PrimitiveObjectInspector.PrimitiveCategory to) |
static boolean |
implicitConvertable(TypeInfo from,
TypeInfo to)
Returns whether it is possible to implicitly convert an object of Class
from to Class to.
|
static boolean |
impliesOrder(java.lang.String functionName)
Both UDF and UDAF functions can imply order for analytical functions
|
static java.lang.Object |
invoke(java.lang.reflect.Method m,
java.lang.Object thisObject,
java.lang.Object... arguments) |
static boolean |
isDeterministic(GenericUDF genericUDF)
Returns whether a GenericUDF is deterministic or not.
|
static boolean |
isOpAnd(ExprNodeDesc desc)
Returns whether the exprNodeDesc is a node of "and".
|
static boolean |
isOpAndOrNot(ExprNodeDesc desc)
Returns whether the exprNodeDesc is a node of "and", "or", "not".
|
static boolean |
isOpNot(ExprNodeDesc desc)
Returns whether the exprNodeDesc is a node of "not".
|
static boolean |
isOpOr(ExprNodeDesc desc)
Returns whether the exprNodeDesc is a node of "or".
|
static boolean |
isOpPositive(ExprNodeDesc desc)
Returns whether the exprNodeDesc is a node of "positive".
|
static boolean |
isOpPreserveInputName(ExprNodeDesc desc)
Returns whether the exprNodeDesc can recommend name for the expression
|
static boolean |
isRankingFunction(java.lang.String name)
Use this to check if function is ranking function
|
static boolean |
isStateful(GenericUDF genericUDF)
Returns whether a GenericUDF is stateful or not.
|
static boolean |
isTableFunction(java.lang.String name) |
static int |
matchCost(TypeInfo argumentPassed,
TypeInfo argumentAccepted,
boolean exact)
Returns -1 if passed does not match accepted.
|
static void |
registerFunctionsFromPluginJar(java.net.URL jarLocation,
java.lang.ClassLoader classLoader)
Registers Hive functions from a plugin jar, using metadata from
the jar's META-INF/class-info.xml.
|
static void |
registerGenericUDAF(boolean isNative,
java.lang.String functionName,
GenericUDAFResolver genericUDAFResolver) |
static void |
registerGenericUDF(boolean isNative,
java.lang.String functionName,
java.lang.Class<? extends GenericUDF> genericUDFClass) |
static void |
registerGenericUDTF(boolean isNative,
java.lang.String functionName,
java.lang.Class<? extends GenericUDTF> genericUDTFClass) |
static void |
registerTableFunction(java.lang.String name,
java.lang.Class<? extends TableFunctionResolver> tFnCls) |
static boolean |
registerTemporaryFunction(java.lang.String functionName,
java.lang.Class<?> udfClass)
Registers the appropriate kind of temporary function based on a class's
type.
|
static void |
registerTemporaryGenericUDAF(java.lang.String functionName,
GenericUDAFResolver genericUDAFResolver) |
static void |
registerTemporaryGenericUDF(java.lang.String functionName,
java.lang.Class<? extends GenericUDF> genericUDFClass) |
static void |
registerTemporaryGenericUDTF(java.lang.String functionName,
java.lang.Class<? extends GenericUDTF> genericUDTFClass) |
static void |
registerTemporaryMacro(java.lang.String macroName,
ExprNodeDesc body,
java.util.List<java.lang.String> colNames,
java.util.List<TypeInfo> colTypes)
Registers thae appropriate kind of temporary function based on a class's
type.
|
static void |
registerTemporaryUDAF(java.lang.String functionName,
java.lang.Class<? extends UDAF> udafClass) |
static void |
registerTemporaryUDF(java.lang.String functionName,
java.lang.Class<? extends UDF> UDFClass,
boolean isOperator) |
static void |
registerUDAF(boolean isNative,
java.lang.String functionName,
java.lang.Class<? extends UDAF> udafClass) |
static void |
registerUDF(boolean isNative,
java.lang.String functionName,
java.lang.Class<? extends UDF> UDFClass,
boolean isOperator) |
static void |
registerUDF(boolean isNative,
java.lang.String functionName,
java.lang.Class<? extends UDF> UDFClass,
boolean isOperator,
java.lang.String displayName) |
static void |
registerUDF(java.lang.String functionName,
java.lang.Class<? extends UDF> UDFClass,
boolean isOperator,
java.lang.String displayName) |
static void |
registerWindowFunction(java.lang.String name,
GenericUDAFResolver wFn) |
static void |
registerWindowFunction(java.lang.String name,
GenericUDAFResolver wFn,
boolean registerAsUDAF)
Typically a WindowFunction is the same as a UDAF.
|
static void |
unregisterTemporaryUDF(java.lang.String functionName) |
public static final java.lang.String LEAD_FUNC_NAME
public static final java.lang.String LAG_FUNC_NAME
public static final java.lang.String LAST_VALUE_FUNC_NAME
public static final java.lang.String WINDOWING_TABLE_FUNCTION
public static final java.lang.String NOOP_TABLE_FUNCTION
public static final java.lang.String NOOP_MAP_TABLE_FUNCTION
public static void registerTemporaryUDF(java.lang.String functionName, java.lang.Class<? extends UDF> UDFClass, boolean isOperator)
public static void registerUDF(boolean isNative, java.lang.String functionName, java.lang.Class<? extends UDF> UDFClass, boolean isOperator)
public static void registerUDF(java.lang.String functionName, java.lang.Class<? extends UDF> UDFClass, boolean isOperator, java.lang.String displayName)
public static void registerUDF(boolean isNative, java.lang.String functionName, java.lang.Class<? extends UDF> UDFClass, boolean isOperator, java.lang.String displayName)
public static void registerTemporaryGenericUDF(java.lang.String functionName, java.lang.Class<? extends GenericUDF> genericUDFClass)
public static void registerGenericUDF(boolean isNative, java.lang.String functionName, java.lang.Class<? extends GenericUDF> genericUDFClass)
public static void registerTemporaryGenericUDTF(java.lang.String functionName, java.lang.Class<? extends GenericUDTF> genericUDTFClass)
public static void registerGenericUDTF(boolean isNative, java.lang.String functionName, java.lang.Class<? extends GenericUDTF> genericUDTFClass)
public static FunctionInfo getFunctionInfo(java.lang.String functionName)
public static java.util.Set<java.lang.String> getFunctionNames()
public static java.util.Set<java.lang.String> getFunctionNames(java.lang.String funcPatternStr)
funcPatternStr
- regular expression of the interested function namespublic static java.util.Set<java.lang.String> getFunctionSynonyms(java.lang.String funcName)
funcName
- the name of the functionpublic static TypeInfo getTypeInfoForPrimitiveCategory(PrimitiveTypeInfo a, PrimitiveTypeInfo b, PrimitiveObjectInspector.PrimitiveCategory typeCategory)
a
- TypeInfo of the first typeb
- TypeInfo of the second typetypeCategory
- PrimitiveCategory of the designated common type between a and bpublic static TypeInfo getCommonClassForUnionAll(TypeInfo a, TypeInfo b)
public static TypeInfo getCommonClassForComparison(TypeInfo a, TypeInfo b)
public static TypeInfo getCommonClass(TypeInfo a, TypeInfo b)
public static boolean implicitConvertable(PrimitiveObjectInspector.PrimitiveCategory from, PrimitiveObjectInspector.PrimitiveCategory to)
public static boolean implicitConvertable(TypeInfo from, TypeInfo to)
public static GenericUDAFEvaluator getGenericUDAFEvaluator(java.lang.String name, java.util.List<ObjectInspector> argumentOIs, boolean isDistinct, boolean isAllColumns) throws SemanticException
name
- the name of the UDAFargumentOIs
- isDistinct
- isAllColumns
- SemanticException
public static GenericUDAFEvaluator getGenericWindowingEvaluator(java.lang.String name, java.util.List<ObjectInspector> argumentOIs, boolean isDistinct, boolean isAllColumns) throws SemanticException
SemanticException
public static <T> java.lang.reflect.Method getMethodInternal(java.lang.Class<? extends T> udfClass, java.lang.String methodName, boolean exact, java.util.List<TypeInfo> argumentClasses) throws UDFArgumentException
UDFArgumentException
public static void registerTemporaryGenericUDAF(java.lang.String functionName, GenericUDAFResolver genericUDAFResolver)
public static void registerGenericUDAF(boolean isNative, java.lang.String functionName, GenericUDAFResolver genericUDAFResolver)
public static void registerTemporaryUDAF(java.lang.String functionName, java.lang.Class<? extends UDAF> udafClass)
public static void registerUDAF(boolean isNative, java.lang.String functionName, java.lang.Class<? extends UDAF> udafClass)
public static void unregisterTemporaryUDF(java.lang.String functionName) throws HiveException
HiveException
public static GenericUDAFResolver getGenericUDAFResolver(java.lang.String functionName)
public static java.lang.Object invoke(java.lang.reflect.Method m, java.lang.Object thisObject, java.lang.Object... arguments) throws HiveException
HiveException
public static int matchCost(TypeInfo argumentPassed, TypeInfo argumentAccepted, boolean exact)
public static java.lang.reflect.Method getMethodInternal(java.lang.Class<?> udfClass, java.util.List<java.lang.reflect.Method> mlist, boolean exact, java.util.List<TypeInfo> argumentsPassed) throws UDFArgumentException
mlist
- The list of methods to inspect.exact
- Boolean to indicate whether this is an exact match or not.argumentsPassed
- The classes for the argument.UDFArgumentException
public static GenericUDF getGenericUDFForIndex()
public static GenericUDF getGenericUDFForAnd()
public static GenericUDF cloneGenericUDF(GenericUDF genericUDF)
public static GenericUDTF cloneGenericUDTF(GenericUDTF genericUDTF)
public static boolean isDeterministic(GenericUDF genericUDF)
public static boolean isStateful(GenericUDF genericUDF)
public static boolean isOpAndOrNot(ExprNodeDesc desc)
public static boolean isOpAnd(ExprNodeDesc desc)
public static boolean isOpOr(ExprNodeDesc desc)
public static boolean isOpNot(ExprNodeDesc desc)
public static boolean isOpPositive(ExprNodeDesc desc)
public static boolean isOpPreserveInputName(ExprNodeDesc desc)
public static boolean registerTemporaryFunction(java.lang.String functionName, java.lang.Class<?> udfClass)
functionName
- name under which to register functionudfClass
- class implementing UD[A|T]Fpublic static void registerTemporaryMacro(java.lang.String macroName, ExprNodeDesc body, java.util.List<java.lang.String> colNames, java.util.List<TypeInfo> colTypes)
macroName
- name under which to register the macrobody
- the expression which the macro evaluates tocolNames
- the names of the arguments to the macrocolTypes
- the types of the arguments to the macropublic static void registerFunctionsFromPluginJar(java.net.URL jarLocation, java.lang.ClassLoader classLoader) throws java.lang.Exception
jarLocation
- URL for reading jar fileclassLoader
- classloader to use for loading function classesjava.lang.Exception
public static void registerWindowFunction(java.lang.String name, GenericUDAFResolver wFn)
public static void registerWindowFunction(java.lang.String name, GenericUDAFResolver wFn, boolean registerAsUDAF)
name
- wFn
- registerAsUDAF
- public static WindowFunctionInfo getWindowFunctionInfo(java.lang.String name)
public static boolean impliesOrder(java.lang.String functionName)
name
- name of functionpublic static boolean isTableFunction(java.lang.String name)
public static TableFunctionResolver getTableFunctionResolver(java.lang.String name)
public static TableFunctionResolver getWindowingTableFunction()
public static TableFunctionResolver getNoopTableFunction()
public static void registerTableFunction(java.lang.String name, java.lang.Class<? extends TableFunctionResolver> tFnCls)
public static boolean isRankingFunction(java.lang.String name)
name
- name of a functionCopyright © 2012 The Apache Software Foundation