## org.h2.expression
Interface FunctionCall

All Known Implementing Classes:
  Function, JavaFunction, TableFunction

    public interface FunctionCall

This interface is used by the built-in functions, as well as the user-defined functions.

Method Summary
`Expression[]` `getArgs()` Get the function arguments.
`java.lang.String` `getName()` Get the name of the function.
`int` `getParameterCount()` Get the number of parameters.
`java.lang.String` `getSQL()` Get the SQL snippet of the function (including arguments).
`int` `getType()` Get the data type.
`Value` `getValue(Session session)` Calculate the result.
`ValueResultSet` `getValueForColumnList(Session session, Expression[] nullArgs)` Get an empty result set with the column names set.
`boolean` `isDeterministic()` Whether the function always returns the same result for the same parameters.
`Expression` `optimize(Session session)` Optimize the function if possible.

Method Detail

### getName

    java.lang.String getName()

  Get the name of the function.

  Returns:
    the name

### getParameterCount

    int getParameterCount()

  Get the number of parameters.

  Returns:
    the number of parameters

### getValueForColumnList

    ValueResultSet getValueForColumnList(Session session,
                                         Expression[] nullArgs)

  Get an empty result set with the column names set.

  Parameters:
    `session` - the session
    `nullArgs` - the argument list (some arguments may be null)
  Returns:
    the empty result set

### getType

    int getType()

  Get the data type.

  Returns:
    the data type

### optimize

    Expression optimize(Session session)

  Optimize the function if possible.

  Parameters:
    `session` - the session
  Returns:
    the optimized expression

### getValue

    Value getValue(Session session)

  Calculate the result.

  Parameters:
    `session` - the session
  Returns:
    the result

### getArgs

    Expression[] getArgs()

  Get the function arguments.

  Returns:
    argument list

### getSQL

    java.lang.String getSQL()

  Get the SQL snippet of the function (including arguments).

  Returns:
    the SQL snippet.

### isDeterministic

    boolean isDeterministic()

  Whether the function always returns the same result for the same parameters.

  Returns:
    true if it does