Class ValueExpression

All Implemented Interfaces:
HasSQL, Typed
Direct Known Subclasses:
TypedValueExpression

public class ValueExpression extends Operation0
An expression representing a constant value.
  • Field Details

    • NULL

      public static final ValueExpression NULL
      The expression represents ValueNull.INSTANCE.
    • DEFAULT

      public static final ValueExpression DEFAULT
      This special expression represents the default value. It is used for UPDATE statements of the form SET COLUMN = DEFAULT. The value is ValueNull.INSTANCE, but should never be accessed.
    • TRUE

      public static final ValueExpression TRUE
      The expression represents ValueBoolean.TRUE.
    • FALSE

      public static final ValueExpression FALSE
      The expression represents ValueBoolean.FALSE.
    • value

      final Value value
      The value.
  • Constructor Details

    • ValueExpression

      ValueExpression(Value value)
  • Method Details

    • get

      public static ValueExpression get(Value value)
      Create a new expression with the given value.
      Parameters:
      value - the value
      Returns:
      the expression
    • getBoolean

      public static ValueExpression getBoolean(Value value)
      Create a new expression with the given boolean value.
      Parameters:
      value - the boolean value
      Returns:
      the expression
    • getBoolean

      public static ValueExpression getBoolean(boolean value)
      Create a new expression with the given boolean value.
      Parameters:
      value - the boolean value
      Returns:
      the expression
    • getValue

      public Value getValue(SessionLocal session)
      Description copied from class: Expression
      Return the resulting value for the current row.
      Specified by:
      getValue in class Expression
      Parameters:
      session - the session
      Returns:
      the result
    • getType

      public TypeInfo getType()
      Description copied from class: Expression
      Returns the data type. The data type may be unknown before the optimization phase.
      Specified by:
      getType in interface Typed
      Specified by:
      getType in class Expression
      Returns:
      the data type
    • createIndexConditions

      public void createIndexConditions(SessionLocal session, TableFilter filter)
      Description copied from class: Expression
      Create index conditions if possible and attach them to the table filter.
      Overrides:
      createIndexConditions in class Expression
      Parameters:
      session - the session
      filter - the table filter
    • getNotIfPossible

      public Expression getNotIfPossible(SessionLocal session)
      Description copied from class: Expression
      If it is possible, return the negated expression. This is used to optimize NOT expressions: NOT ID>10 can be converted to ID<=10. Returns null if negating is not possible.
      Overrides:
      getNotIfPossible in class Expression
      Parameters:
      session - the session
      Returns:
      the negated expression, or null
    • isConstant

      public boolean isConstant()
      Description copied from class: Expression
      Check if this expression will always return the same value.
      Overrides:
      isConstant in class Expression
      Returns:
      if the expression is constant
    • isNullConstant

      public boolean isNullConstant()
      Description copied from class: Expression
      Check if this expression will always return the NULL value.
      Overrides:
      isNullConstant in class Expression
      Returns:
      if the expression is constant NULL value
    • isValueSet

      public boolean isValueSet()
      Description copied from class: Expression
      Is the value of a parameter set.
      Overrides:
      isValueSet in class Expression
      Returns:
      true if set
    • getUnenclosedSQL

      public StringBuilder getUnenclosedSQL(StringBuilder builder, int sqlFlags)
      Description copied from class: Expression
      Get the SQL statement of this expression. This may not always be the original SQL statement, especially after optimization. Enclosing '(' and ')' are never appended.
      Specified by:
      getUnenclosedSQL in class Expression
      Parameters:
      builder - string builder
      sqlFlags - formatting flags
      Returns:
      the specified string builder
    • 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.
      Specified by:
      isEverything in class Expression
      Parameters:
      visitor - the visitor
      Returns:
      if the criteria can be fulfilled
    • getCost

      public int getCost()
      Description copied from class: Expression
      Estimate the cost to process the expression. Used when optimizing the query, to calculate the query plan with the lowest estimated cost.
      Specified by:
      getCost in class Expression
      Returns:
      the estimated cost