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 intABS().static final intCEIL() or CEILING().private TypeInfostatic final intFLOOR().private final intstatic final intMOD().private static final String[]static final intROUND() (non-standard)static final intROUNDMAGIC() (non-standard)static final intSIGN() (non-standard)static final intTRUNC() (non-standard)Fields inherited from class Operation1_2
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
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 ExpressionoptimizeRound(int scale, boolean scaleIsKnown, boolean scaleIsNull, boolean possibleRoundUp) Optimizes rounding and truncation functions.private ExpressionoptimizeRoundWithScale(SessionLocal session, boolean possibleRoundUp) private Valueround(Value v1, Value v2, RoundingMode roundingMode) private static doubleroundMagic(double d) Methods inherited from class Function1_2
getUnenclosedSQL, getValueMethods inherited from class Operation1_2
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, needParentheses, 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
-
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_2Returns the value of this function.- Overrides:
getValuein 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:ExpressionTry to optimize the expression.- Specified by:
optimizein 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 isNULLpossibleRoundUp-trueif result of rounding can have larger precision than precision of argument,falseotherwise- Returns:
- the optimized expression or
nullif this function should be used
-
getName
-