public class FunctionLibrary extends Object
Modifier and Type | Class and Description |
---|---|
static class |
FunctionLibrary.ConversionResult |
Modifier and Type | Field and Description |
---|---|
static String |
ARRAY_GET |
static String |
CAST |
static String |
COALESCE |
static String |
COMMAND_PAYLOAD |
static String |
CONCAT |
static String |
CONCAT_OPERATOR |
static String |
CONCAT2 |
static String |
CONVERT |
static String |
DECODEINTEGER |
static String |
DECODESTRING |
static String |
ENV |
static String |
ENV_VAR |
static String |
FORMATDATE |
static String |
FORMATTIME |
static String |
FROM_UNIXTIME |
static String |
IFNULL |
static Set<String> |
INTERNAL_SCHEMAS |
static String |
JSONARRAY |
static String |
LOOKUP |
static String |
MVSTATUS |
static String |
NULLIF |
static String |
NVL |
static String |
PARSEDATE |
static String |
PARSETIME |
static String |
SESSION_ID |
static String |
SPACE |
static String |
SUBSTRING |
static String |
SYS_PROP |
static String |
TIMESTAMPADD |
static String |
USER |
Constructor and Description |
---|
FunctionLibrary(FunctionTree systemFuncs,
FunctionTree... userFuncs)
Construct the function library.
|
Modifier and Type | Method and Description |
---|---|
FunctionDescriptor |
copyFunctionChangeReturnType(FunctionDescriptor fd,
Class<?> returnType)
Return a copy of the given FunctionDescriptor with the specified return type.
|
FunctionLibrary.ConversionResult |
determineNecessaryConversions(String name,
Class<?> returnType,
Expression[] args,
Class<?>[] types,
boolean hasUnknownType)
Get the conversions that are needed to call the named function with arguments
of the given type.
|
List<FunctionDescriptor> |
findAllFunctions(String name,
Class<?>[] types)
Find a function descriptor given a name and the types of the arguments.
|
FunctionDescriptor |
findFunction(String name,
Class<?>[] types)
Find a function descriptor given a name and the types of the arguments.
|
FunctionDescriptor |
findTypedConversionFunction(Class<?> sourceType,
Class<?> targetType)
Find conversion function and set return type to proper type.
|
List<FunctionMethod> |
getBuiltInAggregateFunctions(boolean includeAnalytic)
Return a list of the most general forms of built-in aggregate functions.
|
FunctionDescriptor[] |
getConverts(FunctionMethod method,
Class<?>[] types) |
List<String> |
getFunctionCategories()
Get all function categories, sorted in alphabetical order
|
List<FunctionMethod> |
getFunctionsInCategory(String category)
Get all function in a category.
|
FunctionTree |
getSystemFunctions() |
FunctionTree[] |
getUserFunctions() |
boolean |
hasFunctionMethod(String name,
int numArgs)
Find function form based on function name and # of arguments.
|
static boolean |
isConvert(Function function) |
boolean |
isVarArgArrayParam(FunctionMethod method,
Class<?>[] types,
int i,
Class<?> targetType) |
boolean |
userFunctionExists(String resourceName) |
public static final String CONVERT
public static final String CAST
public static final String LOOKUP
public static final String USER
public static final String ENV
public static final String SYS_PROP
public static final String ENV_VAR
public static final String SESSION_ID
public static final String DECODESTRING
public static final String DECODEINTEGER
public static final String COMMAND_PAYLOAD
public static final String CONCAT
public static final String CONCAT2
public static final String CONCAT_OPERATOR
public static final String SUBSTRING
public static final String NVL
public static final String IFNULL
public static final String FROM_UNIXTIME
public static final String TIMESTAMPADD
public static final String PARSETIME
public static final String PARSEDATE
public static final String FORMATTIME
public static final String FORMATDATE
public static final String NULLIF
public static final String COALESCE
public static final String SPACE
public static final String ARRAY_GET
public static final String JSONARRAY
public static final String MVSTATUS
public FunctionLibrary(FunctionTree systemFuncs, FunctionTree... userFuncs)
public FunctionTree[] getUserFunctions()
public FunctionTree getSystemFunctions()
public List<String> getFunctionCategories()
public List<FunctionMethod> getFunctionsInCategory(String category)
category
- Category nameFunctionMethod
s in a categorypublic boolean hasFunctionMethod(String name, int numArgs)
name
- Function namenumArgs
- Number of argumentspublic FunctionDescriptor findFunction(String name, Class<?>[] types)
name
- Name of the function to resolvetypes
- Array of classes representing the typespublic List<FunctionDescriptor> findAllFunctions(String name, Class<?>[] types)
name
- Name of the function to resolvetypes
- Array of classes representing the typespublic FunctionLibrary.ConversionResult determineNecessaryConversions(String name, Class<?> returnType, Expression[] args, Class<?>[] types, boolean hasUnknownType) throws InvalidFunctionException
name
- Name of functionreturnType
- args
- types
- Existing types passed to the functionInvalidFunctionException
public FunctionDescriptor[] getConverts(FunctionMethod method, Class<?>[] types)
public boolean isVarArgArrayParam(FunctionMethod method, Class<?>[] types, int i, Class<?> targetType)
public FunctionDescriptor findTypedConversionFunction(Class<?> sourceType, Class<?> targetType)
sourceType
- The source type classtargetType
- The target type classpublic FunctionDescriptor copyFunctionChangeReturnType(FunctionDescriptor fd, Class<?> returnType)
fd
- FunctionDescriptor to be copied.returnType
- The return type to apply to the copied FunctionDescriptor.public static boolean isConvert(Function function)
public List<FunctionMethod> getBuiltInAggregateFunctions(boolean includeAnalytic)
includeAnalytic
- - true to include analytic functions that must be windowedpublic boolean userFunctionExists(String resourceName)
Copyright © 2020. All rights reserved.