Package org.h2.expression
Class BinaryOperation
java.lang.Object
org.h2.expression.Expression
org.h2.expression.Operation2
org.h2.expression.BinaryOperation
A mathematical expression, or string concatenation.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class org.h2.expression.Operation2
left, right, type
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
ConstructorsConstructorDescriptionBinaryOperation
(BinaryOperation.OpType opType, Expression left, Expression right) -
Method Summary
Modifier and TypeMethodDescriptionprivate String
Returns the type of this binary operation.getUnenclosedSQL
(StringBuilder builder, int sqlFlags) Get the SQL statement of this expression.private DbException
private DbException
getUnsupported
(int l, int r) getValue
(SessionLocal session) Return the resulting value for the current row.boolean
Returns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions.optimize
(SessionLocal session) Try to optimize the expression.private Expression
optimizeDateTime
(SessionLocal session, int l, int r) private void
optimizeDecfloat
(TypeInfo leftType, TypeInfo rightType) private Expression
optimizeInterval
(int l, int r) private void
optimizeNumeric
(TypeInfo leftType, TypeInfo rightType) void
setForcedType
(TypeInfo forcedType) Sets a forced data type of a datetime minus datetime operation.private void
swap()
Methods inherited from class org.h2.expression.Operation2
getCost, getSubexpression, getSubexpressionCount, getType, isEverything, mapColumns, setEvaluatable, updateAggregate
Methods inherited from class org.h2.expression.Expression
addFilterConditions, createIndexConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNotIfPossible, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getTableAlias, getTableName, getWhenSQL, getWhenValue, isConstant, isIdentity, isNullConstant, isValueSet, isWhenConditionOperand, 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
-
opType
-
forcedType
-
convertRight
private boolean convertRight
-
-
Constructor Details
-
BinaryOperation
-
-
Method Details
-
setForcedType
Sets a forced data type of a datetime minus datetime operation.- Parameters:
forcedType
- the forced data type
-
needParentheses
public boolean needParentheses()Description copied from class:Expression
Returns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions.- Overrides:
needParentheses
in classExpression
- Returns:
true
if it is
-
getUnenclosedSQL
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 classExpression
- Parameters:
builder
- string buildersqlFlags
- formatting flags- Returns:
- the specified string builder
-
getOperationToken
-
getValue
Description copied from class:Expression
Return the resulting value for the current row.- Specified by:
getValue
in classExpression
- Parameters:
session
- the session- Returns:
- the result
-
optimize
Description copied from class:Expression
Try to optimize the expression.- Specified by:
optimize
in classExpression
- Parameters:
session
- the session- Returns:
- the optimized expression
-
optimizeNumeric
-
optimizeDecfloat
-
optimizeInterval
-
optimizeDateTime
-
getUnsupported
-
getUnexpectedForcedTypeException
-
swap
private void swap() -
getOperationType
Returns the type of this binary operation.- Returns:
- the type of this binary operation
-