Class ValueInterval
Implementation of the INTERVAL data type.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe default leading field precision for intervals.static final intThe default scale for intervals with seconds.private final longstatic final intThe maximum leading field precision for intervals.static final intThe maximum scale for intervals with seconds.private static final long[]private final booleanprivate final longprivate final intFields inherited from class 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_IGNORECASEFields 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
ConstructorsModifierConstructorDescriptionprivateValueInterval(int type, boolean negative, long leading, long remaining) -
Method Summary
Modifier and TypeMethodDescriptionAdd a value and return the result.(package private) booleancheckPrecision(long prec) Check if the precision is smaller or equal than the given precision.intcompareTypeSafe(Value v, CompareMode mode, CastDataProvider provider) Compare this value against another value given that the values are of the same data type.booleanCheck if the two values have the same hash code.static ValueIntervalfrom(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Create a ValueInterval instance.static intgetDisplaySize(int type, int precision, int scale) Returns display size for the specified qualifier, precision and fractional seconds precision.doubleReturns this value as a Javadoublevalue.floatgetFloat()Returns this value as a Javafloatvalue.Returns the interval.longReturns value of leading field of this interval.longgetLong()Returns this value as a Javalongvalue.intGet the memory used by this object.Returns the interval qualifier.longReturns combined value of remaining fields of this interval.intgetSQL(StringBuilder builder, int sqlFlags) Appends the SQL statement of this object to the specified builder.Get the value as a string.getType()Returns the data type.intGet the value type.inthashCode()booleanReturns where the interval is negative.negate()Return -value if this value support arithmetic operations.(package private) ValueIntervalsetPrecisionAndScale(TypeInfo targetType, Object column) Subtract a value and return the result.Methods inherited from class 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, toStringMethods inherited from class VersionedValue
getCommittedValue, getCurrentValue, getOperationId, isCommittedMethods inherited from interface HasSQL
getSQL, getTraceSQL
-
Field Details
-
DEFAULT_PRECISION
public static final int DEFAULT_PRECISIONThe default leading field precision for intervals.- See Also:
-
MAXIMUM_PRECISION
public static final int MAXIMUM_PRECISIONThe maximum leading field precision for intervals.- See Also:
-
DEFAULT_SCALE
public static final int DEFAULT_SCALEThe default scale for intervals with seconds.- See Also:
-
MAXIMUM_SCALE
public static final int MAXIMUM_SCALEThe maximum scale for intervals with seconds.- See Also:
-
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
-
-
Constructor Details
-
ValueInterval
private ValueInterval(int type, boolean negative, long leading, long remaining)
-
-
Method Details
-
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
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
-
getType
-
getValueType
public int getValueType()Description copied from class:ValueGet the value type.- Specified by:
getValueTypein classValue- Returns:
- the value type
-
getMemory
-
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
-
getString
-
getLong
-
getBigDecimal
- Overrides:
getBigDecimalin classValue
-
getFloat
-
getDouble
-
getInterval
-
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. ForSECONDintervals returns integer part of seconds.- Returns:
- value of leading field
-
getRemaining
public long getRemaining()Returns combined value of remaining fields of this interval. ForSECONDintervals returns nanoseconds.- Returns:
- combined value of remaining fields
-
hashCode
-
equals
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. -
compareTypeSafe
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:
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
-
getSignum
-
add
-
subtract
-
negate
-