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

    public abstract class ModeFunction
    extends FunctionN

Base class for mode-specific functions.

### Field Summary

Fields
`protected FunctionInfo` `info` The information about this function.
`protected static int` `VAR_ARGS` 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`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `doneWithParameters()` This method must be called after all the parameters have been set.
`static Expression` `getCompatibilityDateTimeValueFunction(Database database, java.lang.String name, int scale)` Get an instance of the given function without parentheses for this database.
`static ModeFunction` `getFunction(Database database, java.lang.String name)` Get an instance of the given function for this database.
`java.lang.String` `getName()` Get the name.
`boolean` `isEverything(ExpressionVisitor visitor)` Check if this expression and all sub-expressions can fulfill a criteria.

### 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 Detail

#### VAR_ARGS

    protected static final int VAR_ARGS

Constant for variable number of arguments.

See Also:
  Constant Field Values

#### info

    protected final FunctionInfo info

The information about this function.

### Method Detail

#### getFunction

    public static ModeFunction getFunction(Database database,
                                           java.lang.String name)

Get an instance of the given function for this database. If no function with this name is found, null is returned.

Parameters:
  `database` - the database
  `name` - the upper case function name
Returns:
  the function object or null

#### getCompatibilityDateTimeValueFunction

    public static Expression getCompatibilityDateTimeValueFunction(Database database,
                                                                   java.lang.String name,
                                                                   int scale)

Get an instance of the given function without parentheses for this database. If no function with this name is found, null is returned.

Parameters:
  `database` - the database
  `name` - the upper case function name
  `scale` - the scale, or `-1`
Returns:
  the function object or null

#### 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 interface `ExpressionWithVariableParameters`
Overrides:
  `doneWithParameters` in class `OperationN`

#### getName

    public java.lang.String getName()

Description copied from interface: `NamedExpression`
Get the name.

Returns:
  the name in uppercase

#### isEverything

    public boolean isEverything(ExpressionVisitor visitor)

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 class `OperationN`
Parameters:
  `visitor` - the visitor
Returns:
  if the criteria can be fulfilled