Package org.h2.mode
Class ModeFunction
java.lang.Object
org.h2.expression.Expression
org.h2.expression.OperationN
org.h2.expression.function.FunctionN
org.h2.mode.ModeFunction
- All Implemented Interfaces:
ExpressionWithVariableParameters
,NamedExpression
,HasSQL
,Typed
- Direct Known Subclasses:
FunctionsDB2Derby
,FunctionsLegacy
,FunctionsMSSQLServer
,FunctionsMySQL
,FunctionsOracle
,FunctionsPostgreSQL
Base class for mode-specific functions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final FunctionInfo
The information about this function.protected static final int
Constant for variable number of arguments.Fields inherited from class org.h2.expression.OperationN
args, argsCount, type
Fields inherited from class org.h2.expression.Expression
AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESES
Fields inherited from interface org.h2.util.HasSQL
ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) void
checkParameterCount
(int len) Check if the parameter count is correct.void
This method must be called after all the parameters have been set.(package private) final Value[]
getArgumentsValues
(SessionLocal session, Expression[] args) Gets values of arguments and checks them for NULL values if function returns NULL on NULL argument.private static ModeFunction
getCompatibilityModeFunction
(String name, Mode.ModeEnum modeEnum) static ModeFunction
getFunction
(Database database, String name) Get an instance of the given function for this database.getName()
Get the name.(package private) static Value
getNullOrValue
(SessionLocal session, Expression[] args, Value[] values, int i) Get value transformed by expression, or null if i is out of range or the input value is null.boolean
isEverything
(ExpressionVisitor visitor) Check if this expression and all sub-expressions can fulfill a criteria.(package private) final boolean
optimizeArguments
(SessionLocal session) Optimizes arguments.Methods inherited from class org.h2.expression.function.FunctionN
getUnenclosedSQL, getValue, getValue
Methods inherited from class org.h2.expression.OperationN
addParameter, getCost, getSubexpression, getSubexpressionCount, getType, mapColumns, optimizeArguments, setEvaluatable, updateAggregate
Methods inherited from class org.h2.expression.Expression
addFilterConditions, createIndexConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNotIfPossible, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getTableAlias, getTableName, getWhenSQL, getWhenValue, isConstant, isIdentity, isNullConstant, isValueSet, isWhenConditionOperand, needParentheses, optimize, optimizeCondition, toString, writeExpressions, writeExpressions
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.h2.util.HasSQL
getTraceSQL
-
Field Details
-
VAR_ARGS
protected static final int VAR_ARGSConstant for variable number of arguments.- See Also:
-
info
The information about this function.
-
-
Constructor Details
-
ModeFunction
ModeFunction(FunctionInfo info) Creates a new instance of function.- Parameters:
info
- function information
-
-
Method Details
-
getFunction
Get an instance of the given function for this database. If no function with this name is found, null is returned.- Parameters:
database
- the databasename
- the upper case function name- Returns:
- the function object or null
-
getCompatibilityModeFunction
-
getNullOrValue
Get value transformed by expression, or null if i is out of range or the input value is null.- Parameters:
session
- database sessionargs
- expressionsvalues
- array of input valuesi
- index of value of transform- Returns:
- value or null
-
getArgumentsValues
Gets values of arguments and checks them for NULL values if function returns NULL on NULL argument.- Parameters:
session
- the sessionargs
- the arguments- Returns:
- the values, or
null
if function should return NULL due to NULL argument
-
checkParameterCount
void checkParameterCount(int len) Check if the parameter count is correct.- Parameters:
len
- the number of parameters set- Throws:
DbException
- if the parameter count is incorrect
-
doneWithParameters
public void doneWithParameters()Description copied from interface:ExpressionWithVariableParameters
This method must be called after all the parameters have been set. It checks if the parameter count is correct when required by the implementation.- Specified by:
doneWithParameters
in interfaceExpressionWithVariableParameters
- Overrides:
doneWithParameters
in classOperationN
-
optimizeArguments
Optimizes arguments.- Parameters:
session
- the session- Returns:
- whether all arguments are constants and function is deterministic
-
getName
Description copied from interface:NamedExpression
Get the name.- Returns:
- the name in uppercase
-
isEverything
Description copied from class:Expression
Check if this expression and all sub-expressions can fulfill a criteria. If any part returns false, the result is false.- Overrides:
isEverything
in classOperationN
- Parameters:
visitor
- the visitor- Returns:
- if the criteria can be fulfilled
-