Package org.h2.value
Class ValueNumeric
- java.lang.Object
-
- org.h2.value.VersionedValue<Value>
-
- org.h2.value.Value
-
- org.h2.value.ValueBigDecimalBase
-
- org.h2.value.ValueNumeric
-
public final class ValueNumeric extends ValueBigDecimalBase
Implementation of the NUMERIC data type.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_SCALEThe default scale for a NUMERIC value.static intMAXIMUM_SCALEThe maximum scale.static ValueNumericONEThe value 'one'.static ValueNumericZEROThe value 'zero'.-
Fields inherited from class org.h2.value.ValueBigDecimalBase
type, value
-
Fields inherited from class org.h2.value.Value
ARRAY, ASSIGN_TO, BIGINT, BINARY, BLOB, BOOLEAN, CAST_TO, CHAR, CLOB, CONVERT_TO, DATE, DECFLOAT, DOUBLE, EMPTY_VALUES, ENUM, GEOMETRY, GROUP_BINARY_STRING, GROUP_BOOLEAN, GROUP_CHARACTER_STRING, GROUP_COLLECTION, GROUP_DATETIME, GROUP_INTERVAL_DT, GROUP_INTERVAL_YM, GROUP_NULL, GROUP_NUMERIC, GROUP_OTHER, GROUPS, INTEGER, INTERVAL_DAY, INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR, INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND, INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_MONTH, INTERVAL_SECOND, INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, JAVA_OBJECT, JSON, MAX_LONG_DECIMAL, MIN_LONG_DECIMAL, NULL, NUMERIC, REAL, ROW, SMALLINT, TIME, TIME_TZ, TIMESTAMP, TIMESTAMP_TZ, TINYINT, TYPE_COUNT, UNKNOWN, UUID, VARBINARY, VARCHAR, VARCHAR_IGNORECASE
-
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 Modifier Constructor Description privateValueNumeric(java.math.BigDecimal value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Valueadd(Value v)Add a value and return the result.intcompareTypeSafe(Value o, CompareMode mode, CastDataProvider provider)Compare this value against another value given that the values are of the same data type.Valuedivide(Value v, TypeInfo quotientType)Divide by a value and return the result.booleanequals(java.lang.Object other)Check if the two values have the same hash code.static ValueNumericget(java.math.BigDecimal dec)Get or create a NUMERIC value for the given big decimal.static ValueNumericget(java.math.BigInteger bigInteger)Get or create a NUMERIC value for the given big integer.static ValueNumericgetAnyScale(java.math.BigDecimal dec)Get or create a NUMERIC value for the given big decimal with possibly negative scale.java.math.BigDecimalgetBigDecimal()doublegetDouble()Returns this value as a Javadoublevalue.floatgetFloat()Returns this value as a Javafloatvalue.intgetMemory()Get the memory used by this object.intgetSignum()java.lang.StringBuildergetSQL(java.lang.StringBuilder builder, int sqlFlags)Appends the SQL statement of this object to the specified builder.java.lang.StringgetString()Get the value as a string.TypeInfogetType()Returns the data type.intgetValueType()Get the value type.inthashCode()Valuemodulus(Value v)Take the modulus with a value and return the result.Valuemultiply(Value v)Multiply with a value and return the result.Valuenegate()Return -value if this value support arithmetic operations.static java.math.BigDecimalsetScale(java.math.BigDecimal bd, int scale)Set the scale of a BigDecimal value.Valuesubtract(Value v)Subtract a value and return the result.-
Methods inherited from class org.h2.value.Value
cache, castTo, charLength, clearCache, compareTo, compareWithNull, containsNull, convertForAssignTo, convertTo, convertTo, convertTo, convertTo, convertTo, convertToAnyArray, convertToAnyRow, convertToBigint, convertToBoolean, convertToChar, convertToDate, convertToDouble, convertToEnum, convertToGeometry, convertToInt, convertToInt, convertToJavaObject, convertToReal, convertToSmallint, convertToTinyint, convertToUuid, getBoolean, getByte, getBytes, getBytesNoCopy, getDataConversionError, getDataConversionError, getHigherOrder, getHigherOrderKnown, getInputStream, getInputStream, getInt, getLong, getReader, getReader, getShort, getTypeName, getUnsupportedExceptionForOperation, getValueTooLongException, isFalse, isTrue, octetLength, rangeCheck, toString
-
Methods inherited from class org.h2.value.VersionedValue
getCommittedValue, getCurrentValue, getOperationId, isCommitted
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.h2.util.HasSQL
getSQL, getTraceSQL
-
-
-
-
Field Detail
-
ZERO
public static final ValueNumeric ZERO
The value 'zero'.
-
ONE
public static final ValueNumeric ONE
The value 'one'.
-
DEFAULT_SCALE
public static final int DEFAULT_SCALE
The default scale for a NUMERIC value.- See Also:
- Constant Field Values
-
MAXIMUM_SCALE
public static final int MAXIMUM_SCALE
The maximum scale.- See Also:
- Constant Field Values
-
-
Method Detail
-
getString
public java.lang.String getString()
Description copied from class:ValueGet the value as a string.
-
getSQL
public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder, int sqlFlags)Description copied from interface:HasSQLAppends the SQL statement of this object to the specified builder.- Parameters:
builder- string buildersqlFlags- formatting flags- Returns:
- the specified string builder
-
getValueType
public int getValueType()
Description copied from class:ValueGet the value type.- Specified by:
getValueTypein classValue- Returns:
- the value type
-
add
public Value add(Value v)
Description copied from class:ValueAdd a value and return the result.
-
subtract
public Value subtract(Value v)
Description copied from class:ValueSubtract a value and return the result.
-
negate
public Value negate()
Description copied from class:ValueReturn -value if this value support arithmetic operations.
-
multiply
public Value multiply(Value v)
Description copied from class:ValueMultiply with a value and return the result.
-
divide
public Value divide(Value v, TypeInfo quotientType)
Description copied from class:ValueDivide by a value and return the result.
-
modulus
public Value modulus(Value v)
Description copied from class:ValueTake the modulus with a value and return the result.
-
compareTypeSafe
public int compareTypeSafe(Value o, CompareMode mode, CastDataProvider provider)
Description copied from class:ValueCompare this value against another value given that the values are of the same data type.- Specified by:
compareTypeSafein classValue- Parameters:
o- the other valuemode- the compare modeprovider- the cast information provider- Returns:
- 0 if both values are equal, -1 if the other value is smaller, and 1 otherwise
-
getBigDecimal
public java.math.BigDecimal getBigDecimal()
- Overrides:
getBigDecimalin classValue
-
getFloat
public float getFloat()
Description copied from class:ValueReturns this value as a Javafloatvalue.
-
getDouble
public double getDouble()
Description copied from class:ValueReturns this value as a Javadoublevalue.
-
equals
public boolean equals(java.lang.Object other)
Description copied from class:ValueCheck if the two values have the same hash code. No data conversion is made; this method returns false if the other object is not of the same class. For some values, compareTo may return 0 even if equals return false. Example: ValueDecimal 0.0 and 0.00.
-
getMemory
public int getMemory()
Description copied from class:ValueGet the memory used by this object.
-
get
public static ValueNumeric get(java.math.BigDecimal dec)
Get or create a NUMERIC value for the given big decimal.- Parameters:
dec- the big decimal- Returns:
- the value
-
getAnyScale
public static ValueNumeric getAnyScale(java.math.BigDecimal dec)
Get or create a NUMERIC value for the given big decimal with possibly negative scale. If scale is negative, it is normalized to 0.- Parameters:
dec- the big decimal- Returns:
- the value
-
get
public static ValueNumeric get(java.math.BigInteger bigInteger)
Get or create a NUMERIC value for the given big integer.- Parameters:
bigInteger- the big integer- Returns:
- the value
-
setScale
public static java.math.BigDecimal setScale(java.math.BigDecimal bd, int scale)Set the scale of a BigDecimal value.- Parameters:
bd- the BigDecimal valuescale- the new scale- Returns:
- the scaled value
-
-