Package org.h2.expression

# Class ValueExpression

java.lang.Object
org.h2.expression.Expression
org.h2.expression.Operation0
org.h2.expression.ValueExpression

All Implemented Interfaces:
  `HasSQL`, `Typed`

Direct Known Subclasses:
  `TypedValueExpression`

public class ValueExpression extends Operation0
An expression representing a constant value.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final ValueExpression`
`DEFAULT`
This special expression represents the default value.
`static final ValueExpression`
`FALSE`
The expression represents ValueBoolean.FALSE.
`static final ValueExpression`
`NULL`
The expression represents ValueNull.INSTANCE.
`static final ValueExpression`
`TRUE`
The expression represents ValueBoolean.TRUE.

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

## 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.
`static ValueExpression`
`get(Value value)`
Create a new expression with the given value.
`static ValueExpression`
`getBoolean(boolean value)`
Create a new expression with the given boolean value.
`static ValueExpression`
`getBoolean(Value value)`
Create a new expression with the given boolean value.
`int`
`getCost()`
Estimate the cost to process the expression.
`Expression`
`getNotIfPossible(SessionLocal session)`
If it is possible, return the negated expression.
`TypeInfo`
`getType()`
Returns the data type.
`TypeInfo`
`getTypeIfStaticallyKnown(SessionLocal session)`
Returns data type of this expression if it is statically known.
`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.
`boolean`
`isConstant()`
Check if this expression will always return the same value.
`boolean`
`isEverything(ExpressionVisitor visitor)`
Check if this expression and all sub-expressions can fulfill a criteria.
`boolean`
`isNullConstant()`
Check if this expression will always return the NULL value.
`boolean`
`isValueSet()`
Is the value of a parameter set.

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

`mapColumns, optimize, setEvaluatable, updateAggregate`

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

`addFilterConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getSubexpression, getSubexpressionCount, getTableAlias, getTableName, getWhenSQL, getWhenValue, isIdentity, isWhenConditionOperand, needParentheses, 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`

## Field Details

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

## Method Details

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

### getTypeIfStaticallyKnown

public TypeInfo getTypeIfStaticallyKnown(SessionLocal session)
Description copied from class: `Expression`
Returns data type of this expression if it is statically known.

Overrides:
  `getTypeIfStaticallyKnown` in class `Expression`
Parameters:
  `session` - the session
Returns:
  data type 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 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

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