Package org.h2.index

Class IndexCondition


  • public class IndexCondition
    extends java.lang.Object
    A index condition object is made for each condition that can potentially use an index. This class does not extend expression, but in general there is one expression that maps to each index condition.
    • Field Detail

      • EQUALITY

        public static final int EQUALITY
        A bit of a search mask meaning 'equal'.
        See Also:
        Constant Field Values
      • START

        public static final int START
        A bit of a search mask meaning 'larger or equal'.
        See Also:
        Constant Field Values
      • END

        public static final int END
        A bit of a search mask meaning 'smaller or equal'.
        See Also:
        Constant Field Values
      • ALWAYS_FALSE

        public static final int ALWAYS_FALSE
        A bit of a search mask meaning 'the condition is always false'.
        See Also:
        Constant Field Values
      • SPATIAL_INTERSECTS

        public static final int SPATIAL_INTERSECTS
        A bit of a search mask meaning 'spatial intersection'.
        See Also:
        Constant Field Values
      • column

        private final Column column
      • compareType

        private final int compareType
        see constants in Comparison
      • expressionList

        private java.util.List<Expression> expressionList
      • expressionQuery

        private Query expressionQuery
    • Constructor Detail

      • IndexCondition

        private IndexCondition​(int compareType,
                               ExpressionColumn column,
                               Expression expression)
        Parameters:
        compareType - the comparison type, see constants in Comparison
    • Method Detail

      • get

        public static IndexCondition get​(int compareType,
                                         ExpressionColumn column,
                                         Expression expression)
        Create an index condition with the given parameters.
        Parameters:
        compareType - the comparison type, see constants in Comparison
        column - the column
        expression - the expression
        Returns:
        the index condition
      • getInList

        public static IndexCondition getInList​(ExpressionColumn column,
                                               java.util.List<Expression> list)
        Create an index condition with the compare type IN_LIST and with the given parameters.
        Parameters:
        column - the column
        list - the expression list
        Returns:
        the index condition
      • getInQuery

        public static IndexCondition getInQuery​(ExpressionColumn column,
                                                Query query)
        Create an index condition with the compare type IN_QUERY and with the given parameters.
        Parameters:
        column - the column
        query - the select statement
        Returns:
        the index condition
      • getCurrentValue

        public Value getCurrentValue​(SessionLocal session)
        Get the current value of the expression.
        Parameters:
        session - the session
        Returns:
        the value
      • getCurrentValueList

        public Value[] getCurrentValueList​(SessionLocal session)
        Get the current value list of the expression. The value list is of the same type as the column, distinct, and sorted.
        Parameters:
        session - the session
        Returns:
        the value list
      • getCurrentResult

        public ResultInterface getCurrentResult()
        Get the current result of the expression. The rows may not be of the same type, therefore the rows may not be unique.
        Returns:
        the result
      • getSQL

        public java.lang.String getSQL​(int sqlFlags)
        Get the SQL snippet of this comparison.
        Parameters:
        sqlFlags - formatting flags
        Returns:
        the SQL snippet
      • getMask

        public int getMask​(java.util.ArrayList<IndexCondition> indexConditions)
        Get the comparison bit mask.
        Parameters:
        indexConditions - all index conditions
        Returns:
        the mask
      • isAlwaysFalse

        public boolean isAlwaysFalse()
        Check if the result is always false.
        Returns:
        true if the result will always be false
      • isStart

        public boolean isStart()
        Check if this index condition is of the type column larger or equal to value.
        Returns:
        true if this is a start condition
      • isEnd

        public boolean isEnd()
        Check if this index condition is of the type column smaller or equal to value.
        Returns:
        true if this is a end condition
      • isSpatialIntersects

        public boolean isSpatialIntersects()
        Check if this index condition is of the type spatial column intersects value.
        Returns:
        true if this is a spatial intersects condition
      • getCompareType

        public int getCompareType()
      • getColumn

        public Column getColumn()
        Get the referenced column.
        Returns:
        the column
      • getExpression

        public Expression getExpression()
        Get expression.
        Returns:
        Expression.
      • getExpressionList

        public java.util.List<Expression> getExpressionList()
        Get expression list.
        Returns:
        Expression list.
      • getExpressionQuery

        public Query getExpressionQuery()
        Get expression query.
        Returns:
        Expression query.
      • isEvaluatable

        public boolean isEvaluatable()
        Check if the expression can be evaluated.
        Returns:
        true if it can be evaluated
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • compareTypeToString

        private static java.lang.StringBuilder compareTypeToString​(java.lang.StringBuilder builder,
                                                                   int i)