Package org.h2.expression.function
Class MathFunction
- java.lang.Object
-
- org.h2.expression.Expression
-
- org.h2.expression.Operation1_2
-
- org.h2.expression.function.Function1_2
-
- org.h2.expression.function.MathFunction
-
- All Implemented Interfaces:
NamedExpression
,HasSQL
,Typed
public final class MathFunction extends Function1_2
A math function.
-
-
Field Summary
Fields Modifier and Type Field Description static int
ABS
ABS().static int
CEIL
CEIL() or CEILING().private TypeInfo
commonType
static int
FLOOR
FLOOR().private int
function
static int
MOD
MOD().private static java.lang.String[]
NAMES
static int
ROUND
ROUND() (non-standard)static int
ROUNDMAGIC
ROUNDMAGIC() (non-standard)static int
SIGN
SIGN() (non-standard)static int
TRUNC
TRUNC() (non-standard)-
Fields inherited from class org.h2.expression.Operation1_2
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
Constructors Constructor Description MathFunction(Expression arg1, Expression arg2, int function)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getName()
Get the name.Value
getValue(SessionLocal session, Value v1, Value v2)
Returns the value of this function.Expression
optimize(SessionLocal session)
Try to optimize the expression.private Expression
optimizeRound(int scale, boolean scaleIsKnown, boolean scaleIsNull, boolean possibleRoundUp)
Optimizes rounding and truncation functions.private Expression
optimizeRoundWithScale(SessionLocal session, boolean possibleRoundUp)
private Value
round(Value v1, Value v2, java.math.RoundingMode roundingMode)
private static double
roundMagic(double d)
-
Methods inherited from class org.h2.expression.function.Function1_2
getUnenclosedSQL, getValue
-
Methods inherited from class org.h2.expression.Operation1_2
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, 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 Detail
-
ABS
public static final int ABS
ABS().- See Also:
- Constant Field Values
-
MOD
public static final int MOD
MOD().- See Also:
- Constant Field Values
-
FLOOR
public static final int FLOOR
FLOOR().- See Also:
- Constant Field Values
-
CEIL
public static final int CEIL
CEIL() or CEILING().- See Also:
- Constant Field Values
-
ROUND
public static final int ROUND
ROUND() (non-standard)- See Also:
- Constant Field Values
-
ROUNDMAGIC
public static final int ROUNDMAGIC
ROUNDMAGIC() (non-standard)- See Also:
- Constant Field Values
-
SIGN
public static final int SIGN
SIGN() (non-standard)- See Also:
- Constant Field Values
-
TRUNC
public static final int TRUNC
TRUNC() (non-standard)- See Also:
- Constant Field Values
-
NAMES
private static final java.lang.String[] NAMES
-
function
private final int function
-
commonType
private TypeInfo commonType
-
-
Constructor Detail
-
MathFunction
public MathFunction(Expression arg1, Expression arg2, int function)
-
-
Method Detail
-
getValue
public Value getValue(SessionLocal session, Value v1, Value v2)
Description copied from class:Function1_2
Returns the value of this function.- Overrides:
getValue
in classFunction1_2
- Parameters:
session
- the sessionv1
- the value of first argumentv2
- the value of second argument, ornull
- Returns:
- the resulting value
-
roundMagic
private static double roundMagic(double d)
-
optimize
public Expression optimize(SessionLocal session)
Description copied from class:Expression
Try to optimize the expression.- Specified by:
optimize
in classExpression
- Parameters:
session
- the session- Returns:
- the optimized expression
-
optimizeRoundWithScale
private Expression optimizeRoundWithScale(SessionLocal session, boolean possibleRoundUp)
-
optimizeRound
private Expression optimizeRound(int scale, boolean scaleIsKnown, boolean scaleIsNull, boolean possibleRoundUp)
Optimizes rounding and truncation functions.- Parameters:
scale
- the scale, if knownscaleIsKnown
- whether scale is knownscaleIsNull
- whether scale isNULL
possibleRoundUp
-true
if result of rounding can have larger precision than precision of argument,false
otherwise- Returns:
- the optimized expression or
null
if this function should be used
-
getName
public java.lang.String getName()
Description copied from interface:NamedExpression
Get the name.- Returns:
- the name in uppercase
-
-