Package org.h2.index

Class IndexCondition

java.lang.Object
org.h2.index.IndexCondition

public class IndexCondition extends Object
An 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 Details

    • EQUALITY

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

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

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

      public static final int RANGE
      A search mask meaning 'between'.
      See Also:
    • ALWAYS_FALSE

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

      public static final int SPATIAL_INTERSECTS
      A bit of a search mask meaning 'spatial intersection'.
      See Also:
  • Method Details

    • 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, 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
    • getCompoundInList

      public static IndexCondition getCompoundInList(Column[] columns, List<Expression> list)
      Create a compound index condition with the compare type IN_LIST and with the given parameters.
      Parameters:
      columns - the columns
      list - the expression list
      Returns:
      the index condition
    • getInArray

      public static IndexCondition getInArray(ExpressionColumn column, Expression array)
      Create an index condition with the compare type IN_ARRAY and with the given parameters.
      Parameters:
      column - the column
      array - the array
      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, int[] sortTypes)
      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
      sortTypes - sort types
      Returns:
      the value list
    • getCurrentResult

      public ResultInterface getCurrentResult(SessionLocal session, int[] sortTypes)
      Get the current result of the expression. The rows may not be of the same type, therefore the rows may not be unique.
      Parameters:
      session - the session
      sortTypes - sort types
      Returns:
      the result
    • getSQL

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

      public int getMask(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 an 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
      Throws:
      DbException - if isCompoundColumns() is true
    • getColumns

      public Column[] getColumns()
      Get the referenced columns.
      Returns:
      the column array
      Throws:
      DbException - if isCompoundColumns() is false
    • isCompoundColumns

      public boolean isCompoundColumns()
      Check if the expression contains multiple columns
      Returns:
      true if it contains multiple columns
    • getExpression

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

      public 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
    • cloneWithIndexColumns

      public IndexCondition cloneWithIndexColumns(Index index)
      Creates a copy of this index condition but using the columns of the index.
      Parameters:
      index - a non-null Index
      Returns:
      a new IndexCondition with the specified columns, or null if the index does not match with this condition.
    • toString

      public String toString()
      Overrides:
      toString in class Object