Class ValueExpression

    • Field Detail

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

      • ValueExpression

        ValueExpression​(Value value)
    • Method Detail

      • 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 java.lang.StringBuilder getUnenclosedSQL​(java.lang.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