Package org.h2.value
Class ValueInterval
- java.lang.Object
-
- org.h2.value.VersionedValue<Value>
-
- org.h2.value.Value
-
- org.h2.value.ValueInterval
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_PRECISION
The default leading field precision for intervals.static int
DEFAULT_SCALE
The default scale for intervals with seconds.private long
leading
static int
MAXIMUM_PRECISION
The maximum leading field precision for intervals.static int
MAXIMUM_SCALE
The maximum scale for intervals with seconds.private static long[]
MULTIPLIERS
private boolean
negative
private long
remaining
private int
valueType
-
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 private
ValueInterval(int type, boolean negative, long leading, long remaining)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Value
add(Value v)
Add a value and return the result.(package private) boolean
checkPrecision(long prec)
Check if the precision is smaller or equal than the given precision.int
compareTypeSafe(Value v, CompareMode mode, CastDataProvider provider)
Compare this value against another value given that the values are of the same data type.boolean
equals(java.lang.Object obj)
Check if the two values have the same hash code.static ValueInterval
from(IntervalQualifier qualifier, boolean negative, long leading, long remaining)
Create a ValueInterval instance.java.math.BigDecimal
getBigDecimal()
static int
getDisplaySize(int type, int precision, int scale)
Returns display size for the specified qualifier, precision and fractional seconds precision.double
getDouble()
Returns this value as a Javadouble
value.float
getFloat()
Returns this value as a Javafloat
value.Interval
getInterval()
Returns the interval.long
getLeading()
Returns value of leading field of this interval.long
getLong()
Returns this value as a Javalong
value.int
getMemory()
Get the memory used by this object.IntervalQualifier
getQualifier()
Returns the interval qualifier.long
getRemaining()
Returns combined value of remaining fields of this interval.int
getSignum()
java.lang.StringBuilder
getSQL(java.lang.StringBuilder builder, int sqlFlags)
Appends the SQL statement of this object to the specified builder.java.lang.String
getString()
Get the value as a string.TypeInfo
getType()
Returns the data type.int
getValueType()
Get the value type.int
hashCode()
boolean
isNegative()
Returns where the interval is negative.Value
negate()
Return -value if this value support arithmetic operations.(package private) ValueInterval
setPrecisionAndScale(TypeInfo targetType, java.lang.Object column)
Value
subtract(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, divide, getBoolean, getByte, getBytes, getBytesNoCopy, getDataConversionError, getDataConversionError, getHigherOrder, getHigherOrderKnown, getInputStream, getInputStream, getInt, getReader, getReader, getShort, getTypeName, getUnsupportedExceptionForOperation, getValueTooLongException, isFalse, isTrue, modulus, multiply, 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
-
DEFAULT_PRECISION
public static final int DEFAULT_PRECISION
The default leading field precision for intervals.- See Also:
- Constant Field Values
-
MAXIMUM_PRECISION
public static final int MAXIMUM_PRECISION
The maximum leading field precision for intervals.- See Also:
- Constant Field Values
-
DEFAULT_SCALE
public static final int DEFAULT_SCALE
The default scale for intervals with seconds.- See Also:
- Constant Field Values
-
MAXIMUM_SCALE
public static final int MAXIMUM_SCALE
The maximum scale for intervals with seconds.- See Also:
- Constant Field Values
-
MULTIPLIERS
private static final long[] MULTIPLIERS
-
valueType
private final int valueType
-
negative
private final boolean negative
-
leading
private final long leading
-
remaining
private final long remaining
-
-
Method Detail
-
from
public static ValueInterval from(IntervalQualifier qualifier, boolean negative, long leading, long remaining)
Create a ValueInterval instance.- Parameters:
qualifier
- qualifiernegative
- whether interval is negativeleading
- value of leading fieldremaining
- values of all remaining fields- Returns:
- interval value
-
getDisplaySize
public static int getDisplaySize(int type, int precision, int scale)
Returns display size for the specified qualifier, precision and fractional seconds precision.- Parameters:
type
- the value typeprecision
- leading field precisionscale
- fractional seconds precision. Ignored if specified type of interval does not have seconds.- Returns:
- display size
-
getSQL
public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder, int sqlFlags)
Description copied from interface:HasSQL
Appends 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:Value
Get the value type.- Specified by:
getValueType
in classValue
- Returns:
- the value type
-
getMemory
public int getMemory()
Description copied from class:Value
Get the memory used by this object.
-
checkPrecision
boolean checkPrecision(long prec)
Check if the precision is smaller or equal than the given precision.- Parameters:
prec
- the maximum precision- Returns:
- true if the precision of this value is smaller or equal to the given precision
-
setPrecisionAndScale
ValueInterval setPrecisionAndScale(TypeInfo targetType, java.lang.Object column)
-
getString
public java.lang.String getString()
Description copied from class:Value
Get the value as a string.
-
getLong
public long getLong()
Description copied from class:Value
Returns this value as a Javalong
value.
-
getBigDecimal
public java.math.BigDecimal getBigDecimal()
- Overrides:
getBigDecimal
in classValue
-
getFloat
public float getFloat()
Description copied from class:Value
Returns this value as a Javafloat
value.
-
getDouble
public double getDouble()
Description copied from class:Value
Returns this value as a Javadouble
value.
-
getInterval
public Interval getInterval()
Returns the interval.- Returns:
- the interval
-
getQualifier
public IntervalQualifier getQualifier()
Returns the interval qualifier.- Returns:
- the interval qualifier
-
isNegative
public boolean isNegative()
Returns where the interval is negative.- Returns:
- where the interval is negative
-
getLeading
public long getLeading()
Returns value of leading field of this interval. ForSECOND
intervals returns integer part of seconds.- Returns:
- value of leading field
-
getRemaining
public long getRemaining()
Returns combined value of remaining fields of this interval. ForSECOND
intervals returns nanoseconds.- Returns:
- combined value of remaining fields
-
equals
public boolean equals(java.lang.Object obj)
Description copied from class:Value
Check 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.
-
compareTypeSafe
public int compareTypeSafe(Value v, CompareMode mode, CastDataProvider provider)
Description copied from class:Value
Compare this value against another value given that the values are of the same data type.- Specified by:
compareTypeSafe
in classValue
- Parameters:
v
- 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
-
add
public Value add(Value v)
Description copied from class:Value
Add a value and return the result.
-
subtract
public Value subtract(Value v)
Description copied from class:Value
Subtract a value and return the result.
-
-