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 Operation2
left, right, typeFields inherited from class Expression
AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESESFields inherited from interface 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 StringReturns the type of this binary operation.getUnenclosedSQL(StringBuilder builder, int sqlFlags) Get the SQL statement of this expression.private DbExceptionprivate DbExceptiongetUnsupported(int l, int r) getValue(SessionLocal session) Return the resulting value for the current row.booleanReturns 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 ExpressionoptimizeDateTime(SessionLocal session, int l, int r) private voidoptimizeDecfloat(TypeInfo leftType, TypeInfo rightType) private ExpressionoptimizeInterval(int l, int r) private voidoptimizeNumeric(TypeInfo leftType, TypeInfo rightType) voidsetForcedType(TypeInfo forcedType) Sets a forced data type of a datetime minus datetime operation.private voidswap()Methods inherited from class Operation2
getCost, getSubexpression, getSubexpressionCount, getType, isEverything, mapColumns, setEvaluatable, updateAggregateMethods inherited from class 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, writeExpressionsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface 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:ExpressionReturns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions.- Overrides:
needParenthesesin classExpression- Returns:
trueif it is
-
getUnenclosedSQL
Description copied from class:ExpressionGet 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:
getUnenclosedSQLin classExpression- Parameters:
builder- string buildersqlFlags- formatting flags- Returns:
- the specified string builder
-
getOperationToken
-
getValue
Description copied from class:ExpressionReturn the resulting value for the current row.- Specified by:
getValuein classExpression- Parameters:
session- the session- Returns:
- the result
-
optimize
Description copied from class:ExpressionTry to optimize the expression.- Specified by:
optimizein 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
-