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 Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ALWAYS_FALSE`
A bit of a search mask meaning 'the condition is always false'.
`static final int`
`END`
A bit of a search mask meaning 'smaller or equal'.
`static final int`
`EQUALITY`
A bit of a search mask meaning 'equal'.
`static final int`
`RANGE`
A search mask meaning 'between'.
`static final int`
`SPATIAL_INTERSECTS`
A bit of a search mask meaning 'spatial intersection'.
`static final int`
`START`
A bit of a search mask meaning 'larger or equal'.

## Method Summary

Modifier and Type
Method
Description
`IndexCondition`
`cloneWithIndexColumns(Index index)`
Creates a copy of this index condition but using the `columns` of the `index`.
`static IndexCondition`
`get(int compareType, ExpressionColumn column, Expression expression)`
Create an index condition with the given parameters.
`Column`
`getColumn()`
Get the referenced column.
`Column[]`
`getColumns()`
Get the referenced columns.
`int`
`getCompareType()`
`static IndexCondition`
`getCompoundInList(Column[] columns, List<Expression> list)`
Create a compound index condition with the compare type IN_LIST and with the given parameters.
`ResultInterface`
`getCurrentResult(SessionLocal session, int[] sortTypes)`
Get the current result of the expression.
`Value`
`getCurrentValue(SessionLocal session)`
Get the current value of the expression.
`Value[]`
`getCurrentValueList(SessionLocal session, int[] sortTypes)`
Get the current value list of the expression.
`Expression`
`getExpression()`
Get expression.
`List<Expression>`
`getExpressionList()`
Get expression list.
`Query`
`getExpressionQuery()`
Get expression query.
`static IndexCondition`
`getInArray(ExpressionColumn column, Expression array)`
Create an index condition with the compare type IN_ARRAY and with the given parameters.
`static IndexCondition`
`getInList(ExpressionColumn column, List<Expression> list)`
Create an index condition with the compare type IN_LIST and with the given parameters.
`static IndexCondition`
`getInQuery(ExpressionColumn column, Query query)`
Create an index condition with the compare type IN_QUERY and with the given parameters.
`int`
`getMask(ArrayList<IndexCondition> indexConditions)`
Get the comparison bit mask.
`String`
`getSQL(int sqlFlags)`
Get the SQL snippet of this comparison.
`boolean`
`isAlwaysFalse()`
Check if the result is always false.
`boolean`
`isCompoundColumns()`
Check if the expression contains multiple columns
`boolean`
`isEnd()`
Check if this index condition is of the type column smaller or equal to value.
`boolean`
`isEvaluatable()`
Check if the expression can be evaluated.
`boolean`
`isSpatialIntersects()`
Check if this index condition is of the type spatial column intersects value.
`boolean`
`isStart()`
Check if this index condition is of the type column larger or equal to value.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### 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

### RANGE

public static final int RANGE
A search mask meaning 'between'.

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

## 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`