Package org.h2.expression.condition

# Class BooleanTest

java.lang.Object
org.h2.expression.Expression
org.h2.expression.condition.SimplePredicate
org.h2.expression.condition.BooleanTest

All Implemented Interfaces:
  `HasSQL`, `Typed`

public final class BooleanTest extends SimplePredicate
Boolean test (IS [NOT] { TRUE | FALSE | UNKNOWN }).

## Field Summary

### Fields inherited from class org.h2.expression.Expression

`AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESES`

### Fields inherited from interface org.h2.util.HasSQL

`ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

## Constructor Summary

Constructors
Constructor
Description
`BooleanTest(Expression left, boolean not, boolean whenOperand, Boolean right)`

## Method Summary

Modifier and Type
Method
Description
`void`
`createIndexConditions(SessionLocal session, TableFilter filter)`
Create index conditions if possible and attach them to the table filter.
`Expression`
`getNotIfPossible(SessionLocal session)`
If it is possible, return the negated expression.
`TypeInfo`
`getType()`
Returns the data type.
`StringBuilder`
`getUnenclosedSQL(StringBuilder builder, int sqlFlags)`
Get the SQL statement of this expression.
`Value`
`getValue(SessionLocal session)`
Return the resulting value for the current row.
`StringBuilder`
`getWhenSQL(StringBuilder builder, int sqlFlags)`
Appends the SQL statement of this when operand to the specified builder.
`boolean`
`getWhenValue(SessionLocal session, Value left)`
Return the resulting value of when operand for the current row.

### Methods inherited from class org.h2.expression.condition.SimplePredicate

`getCost, getSubexpression, getSubexpressionCount, isEverything, isWhenConditionOperand, mapColumns, needParentheses, optimize, setEvaluatable, updateAggregate`

### Methods inherited from class org.h2.expression.Expression

`addFilterConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getTableAlias, getTableName, getTypeIfStaticallyKnown, isConstant, isIdentity, isNullConstant, isValueSet, optimizeCondition, toString, writeExpressions, writeExpressions`

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

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

### Methods inherited from interface org.h2.util.HasSQL

`getTraceSQL`

## Constructor Details

### BooleanTest

public BooleanTest(Expression left, boolean not, boolean whenOperand, Boolean right)

## Method Details

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

### getWhenSQL

public StringBuilder getWhenSQL(StringBuilder builder, int sqlFlags)
Description copied from class: `Expression`
Appends the SQL statement of this when operand to the specified builder.

Overrides:
  `getWhenSQL` in class `Expression`
Parameters:
  `builder` - string builder
  `sqlFlags` - formatting flags
Returns:
  the specified string builder

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

### getWhenValue

public boolean getWhenValue(SessionLocal session, Value left)
Description copied from class: `Expression`
Return the resulting value of when operand for the current row.

Overrides:
  `getWhenValue` in class `Expression`
Parameters:
  `session` - the session
  `left` - value on the left side
Returns:
  the result

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

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

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