Class TableFunction

java.lang.Object
org.h2.expression.function.table.TableFunction
All Implemented Interfaces:
ExpressionWithVariableParameters, NamedExpression, HasSQL
Direct Known Subclasses:
ArrayTableFunction, CSVReadFunction, JavaTableFunction, LinkSchemaFunction

public abstract class TableFunction extends Object implements HasSQL, NamedExpression, ExpressionWithVariableParameters
A table value function.
  • Field Details

    • args

      protected Expression[] args
    • argsCount

      private int argsCount
  • Constructor Details

    • TableFunction

      protected TableFunction(Expression[] args)
  • Method Details

    • addParameter

      public void addParameter(Expression param)
      Description copied from interface: ExpressionWithVariableParameters
      Adds the parameter expression.
      Specified by:
      addParameter in interface ExpressionWithVariableParameters
      Parameters:
      param - the expression
    • doneWithParameters

      public void doneWithParameters() throws DbException
      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
      Throws:
      DbException - if the parameter count is incorrect.
    • getValue

      public abstract ResultInterface getValue(SessionLocal session)
      Get a result with.
      Parameters:
      session - the session
      Returns:
      the result
    • getValueTemplate

      public abstract ResultInterface getValueTemplate(SessionLocal session)
      Get an empty result with the column names set.
      Parameters:
      session - the session
      Returns:
      the empty result
    • optimize

      public void optimize(SessionLocal session)
      Try to optimize this table function
      Parameters:
      session - the session
    • isDeterministic

      public abstract boolean isDeterministic()
      Whether the function always returns the same result for the same parameters.
      Returns:
      true if it does
    • getSQL

      public StringBuilder getSQL(StringBuilder builder, int sqlFlags)
      Description copied from interface: HasSQL
      Appends the SQL statement of this object to the specified builder.
      Specified by:
      getSQL in interface HasSQL
      Parameters:
      builder - string builder
      sqlFlags - formatting flags
      Returns:
      the specified string builder