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
A math function.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
ABS().static final int
CEIL() or CEILING().private TypeInfo
static final int
FLOOR().private final int
static final int
MOD().private static final String[]
static final int
ROUND() (non-standard)static final int
ROUNDMAGIC() (non-standard)static final int
SIGN() (non-standard)static final int
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 -
Method Summary
Modifier and TypeMethodDescriptiongetName()
Get the name.getValue
(SessionLocal session, Value v1, Value v2) Returns the value of this function.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, 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 Details
-
ABS
public static final int ABSABS().- See Also:
-
MOD
public static final int MODMOD().- See Also:
-
FLOOR
public static final int FLOORFLOOR().- See Also:
-
CEIL
public static final int CEILCEIL() or CEILING().- See Also:
-
ROUND
public static final int ROUNDROUND() (non-standard)- See Also:
-
ROUNDMAGIC
public static final int ROUNDMAGICROUNDMAGIC() (non-standard)- See Also:
-
SIGN
public static final int SIGNSIGN() (non-standard)- See Also:
-
TRUNC
public static final int TRUNCTRUNC() (non-standard)- See Also:
-
NAMES
-
function
private final int function -
commonType
-
-
Constructor Details
-
MathFunction
-
-
Method Details
-
getValue
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
-
round
-
roundMagic
private static double roundMagic(double d) -
optimize
Description copied from class:Expression
Try to optimize the expression.- Specified by:
optimize
in classExpression
- Parameters:
session
- the session- Returns:
- the optimized expression
-
optimizeRoundWithScale
-
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
Description copied from interface:NamedExpression
Get the name.- Returns:
- the name in uppercase
-