Package org.h2.value
Class Value
- Direct Known Subclasses:
SearchRow
,SpatialKey
,ValueBigDecimalBase
,ValueBigint
,ValueBoolean
,ValueBytesBase
,ValueCollectionBase
,ValueDate
,ValueDouble
,ValueEnumBase
,ValueInteger
,ValueInterval
,ValueLob
,ValueNull
,ValueReal
,ValueSmallint
,ValueStringBase
,ValueTime
,ValueTimestamp
,ValueTimestampTimeZone
,ValueTimeTimeZone
,ValueTinyint
,ValueUuid
This is the base class for all value classes.
It provides conversion and comparison methods.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
The value type for ARRAY values.(package private) static final int
Cast a value to the specified type for assignment.static final int
The value type for BIGINT values.static final int
The value type for BINARY values.static final int
The value type for BINARY LARGE OBJECT values.static final int
The value type for BOOLEAN values.(package private) static final int
Cast a value to the specified type.static final int
The value type for CHARACTER values.static final int
The value type for CHARACTER LARGE OBJECT values.(package private) static final int
Convert a value to the specified type without taking scale and precision into account.static final int
The value type for DATE values.static final int
The value type for DECFLOAT values.static final int
The value type for DOUBLE PRECISION values.static final Value[]
Empty array of values.static final int
The value type for ENUM values.static final int
The value type for string values with a fixed size.(package private) static final int
Group for binary string data types.(package private) static final int
Group for BINARY data type.(package private) static final int
Group for character string data types.(package private) static final int
Group for collection data types (ARRAY, ROW).(package private) static final int
Group for datetime data types.(package private) static final int
Group for day-time interval data types.(package private) static final int
Group for year-month interval data types.(package private) static final int
Group for untyped NULL data type.(package private) static final int
Group for numeric data types.(package private) static final int
Group for other data types (JAVA_OBJECT, UUID, GEOMETRY, ENUM, JSON).(package private) static final byte[]
static final int
The value type for INTEGER values.static final int
The value type forINTERVAL DAY
values.static final int
The value type forINTERVAL DAY TO HOUR
values.static final int
The value type forINTERVAL DAY TO MINUTE
values.static final int
The value type forINTERVAL DAY TO SECOND
values.static final int
The value type forINTERVAL HOUR
values.static final int
The value type forINTERVAL HOUR TO MINUTE
values.static final int
The value type forINTERVAL HOUR TO SECOND
values.static final int
The value type forINTERVAL MINUTE
values.static final int
The value type forINTERVAL MINUTE TO SECOND
values.static final int
The value type forINTERVAL MONTH
values.static final int
The value type forINTERVAL SECOND
values.static final int
The value type forINTERVAL YEAR
values.static final int
The value type forINTERVAL YEAR TO MONTH
values.static final int
The value type for JAVA_OBJECT values.static final int
The value type for JSON values.(package private) static final BigDecimal
static final BigDecimal
The smallest Long value, as a BigDecimal.private static final String[]
static final int
The value type for NULL.static final int
The value type for NUMERIC values.static final int
The value type for REAL values.static final int
The value type for ROW values.static final int
The value type for SMALLINT values.private static SoftReference
<Value[]> static final int
The value type for TIME values.static final int
The value type for TIME WITH TIME ZONE values.static final int
The value type for TIMESTAMP values.static final int
The value type for TIMESTAMP WITH TIME ZONE values.static final int
The value type for TINYINT values.static final int
The number of value types.static final int
The data type is unknown at this time.static final int
The value type for UUID values.static final int
The value type for BINARY VARYING values.static final int
The value type for CHARACTER VARYING values.static final int
The value type for VARCHAR_IGNORECASE values.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 TypeMethodDescriptionAdd a value and return the result.(package private) static Value
Check if a value is in the cache that is equal to this value.final Value
castTo
(TypeInfo targetType, CastDataProvider provider) Cast a value to the specified type.long
Returns length of this value in characters.static void
Clear the value cache.final int
compareTo
(Value v, CastDataProvider provider, CompareMode compareMode) Compare this value against another value using the specified compare mode.private int
compareToNotNullable
(Value v, CastDataProvider provider, CompareMode compareMode) abstract int
compareTypeSafe
(Value v, CompareMode mode, CastDataProvider provider) Compare this value against another value given that the values are of the same data type.int
compareWithNull
(Value v, boolean forEquality, CastDataProvider provider, CompareMode compareMode) Compare this value against another value using the specified compare mode.boolean
Returns true if this value is NULL or contains NULL value.final Value
convertForAssignTo
(TypeInfo targetType, CastDataProvider provider, Object column) Cast a value to the specified type for assignment.final Value
convertTo
(int targetType) Convert a value to the specified type without taking scale and precision into account.final Value
convertTo
(int targetType, CastDataProvider provider) Convert a value to the specified type without taking scale and precision into account.final Value
Convert a value to the specified type without taking scale and precision into account.final Value
convertTo
(TypeInfo targetType, CastDataProvider provider) Convert a value to the specified type without taking scale and precision into account.private Value
convertTo
(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) Convert a value to the specified type.final Value
convertTo
(TypeInfo targetType, CastDataProvider provider, Object column) Convert a value to the specified type without taking scale and precision into account.final ValueArray
convertToAnyArray
(CastDataProvider provider) Convert this value to any ARRAY data type.final ValueRow
Convert this value to any ROW data type.private ValueArray
convertToArray
(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) final ValueBigint
convertToBigint
(Object column) Converts this value to a BIGINT value.private ValueBinary
convertToBinary
(TypeInfo targetType, int conversionMode, Object column) private ValueBlob
convertToBlob
(TypeInfo targetType, int conversionMode, Object column) final ValueBoolean
Converts this value to a BOOLEAN value.private static byte
convertToByte
(long x, Object column) Converts this value to a CHAR value.private ValueChar
convertToChar
(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) private ValueClob
convertToClob
(TypeInfo targetType, int conversionMode, Object column) final ValueDate
convertToDate
(CastDataProvider provider) Converts this value to a DATE value.private ValueDecfloat
convertToDecfloat
(TypeInfo targetType, int conversionMode) final ValueDouble
Converts this value to a DOUBLE value.final ValueEnum
convertToEnum
(ExtTypeInfoEnum extTypeInfo, CastDataProvider provider) Converts this value to an ENUM value.final ValueGeometry
convertToGeometry
(ExtTypeInfoGeometry extTypeInfo) Converts this value to a GEOMETRY value.static int
convertToInt
(long x, Object column) Convert to integer, throwing exception if out of range.final ValueInteger
convertToInt
(Object column) Converts this value to a INT value.private ValueInterval
convertToIntervalDayTime
(int targetType, Object column) private ValueInterval
convertToIntervalDayTime
(BigDecimal bigDecimal, int targetType) private ValueInterval
convertToIntervalDayTime
(TypeInfo targetType, int conversionMode, Object column) private ValueInterval
convertToIntervalYearMonth
(int targetType, Object column) private ValueInterval
convertToIntervalYearMonth
(TypeInfo targetType, int conversionMode, Object column) final ValueJavaObject
convertToJavaObject
(TypeInfo targetType, int conversionMode, Object column) Converts this value to a JAVA_OBJECT value.private ValueJson
convertToJson
(TypeInfo targetType, int conversionMode, Object column) private static long
convertToLong
(double x, Object column) private static long
convertToLong
(BigDecimal x, Object column) private ValueNumeric
convertToNumeric
(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) final ValueReal
Converts this value to a REAL value.private Value
convertToRow
(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) private static short
convertToShort
(long x, Object column) final ValueSmallint
convertToSmallint
(Object column) Converts this value to a SMALLINT value.private ValueTime
convertToTime
(TypeInfo targetType, CastDataProvider provider, int conversionMode) private ValueTimestamp
convertToTimestamp
(TypeInfo targetType, CastDataProvider provider, int conversionMode) private ValueTimestampTimeZone
convertToTimestampTimeZone
(TypeInfo targetType, CastDataProvider provider, int conversionMode) private ValueTimeTimeZone
convertToTimeTimeZone
(TypeInfo targetType, CastDataProvider provider, int conversionMode) final ValueTinyint
convertToTinyint
(Object column) Converts this value to a TINYINT value.final ValueUuid
Converts this value to a UUID value.private ValueVarbinary
convertToVarbinary
(TypeInfo targetType, int conversionMode, Object column) private Value
convertToVarchar
(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) private Value
convertToVarcharIgnoreCase
(TypeInfo targetType, int conversionMode, Object column) Divide by a value and return the result.abstract boolean
Check if the two values have the same hash code.boolean
Returns this value as a Javaboolean
value.byte
getByte()
Returns this value as a Javabyte
value.byte[]
getBytes()
byte[]
private static String
getColumnName
(Object column) (package private) final DbException
getDataConversionError
(int targetType) Creates new instance of the DbException for data conversion error.(package private) final DbException
getDataConversionError
(TypeInfo targetType) Creates new instance of the DbException for data conversion error.private static DbException
getDataTypeCombinationException
(int t1, int t2) double
Returns this value as a Javadouble
value.float
getFloat()
Returns this value as a Javafloat
value.private static int
getHigherDateTime
(int t1, int t2, int g2) private static int
getHigherIntervalDayTime
(int t1, int t2, int g2) private static int
getHigherIntervalYearMonth
(int t1, int t2, int g2) private static int
getHigherNumeric
(int t1, int t2, int g2) static int
getHigherOrder
(int t1, int t2) Get the higher value order type of two value types.(package private) static int
getHigherOrderKnown
(int t1, int t2) private static int
getHigherOther
(int t1, int t2, int g2) getInputStream
(long oneBasedOffset, long length) Get the input streamint
getInt()
Returns this value as a Javaint
value.private long
getLocalTimeNanos
(CastDataProvider provider) long
getLong()
Returns this value as a Javalong
value.int
Get the memory used by this object.getReader
(long oneBasedOffset, long length) Get the readershort
getShort()
Returns this value as a Javashort
value.int
abstract String
Get the value as a string.abstract TypeInfo
getType()
Returns the data type.static String
getTypeName
(int valueType) Returns name of the specified data type.protected final DbException
Create an exception meaning the specified operation is not supported for this data type.(package private) final DbException
getValueTooLongException
(TypeInfo targetType, Object column) abstract int
Get the value type.abstract int
hashCode()
final boolean
isFalse()
Returns whether this valueIS FALSE
.final boolean
isTrue()
Returns whether this valueIS TRUE
.Take the modulus with a value and return the result.Multiply with a value and return the result.negate()
Return -value if this value support arithmetic operations.long
Returns length of this value in bytes.(package private) static void
rangeCheck
(long zeroBasedOffset, long length, long dataSize) Check the range of the parameters.Subtract a value and return the result.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, getSQL, getTraceSQL
-
Field Details
-
UNKNOWN
public static final int UNKNOWNThe data type is unknown at this time.- See Also:
-
NULL
public static final int NULLThe value type for NULL.- See Also:
-
CHAR
public static final int CHARThe value type for CHARACTER values.- See Also:
-
VARCHAR
public static final int VARCHARThe value type for CHARACTER VARYING values.- See Also:
-
CLOB
public static final int CLOBThe value type for CHARACTER LARGE OBJECT values.- See Also:
-
VARCHAR_IGNORECASE
public static final int VARCHAR_IGNORECASEThe value type for VARCHAR_IGNORECASE values.- See Also:
-
BINARY
public static final int BINARYThe value type for BINARY values.- See Also:
-
VARBINARY
public static final int VARBINARYThe value type for BINARY VARYING values.- See Also:
-
BLOB
public static final int BLOBThe value type for BINARY LARGE OBJECT values.- See Also:
-
BOOLEAN
public static final int BOOLEANThe value type for BOOLEAN values.- See Also:
-
TINYINT
public static final int TINYINTThe value type for TINYINT values.- See Also:
-
SMALLINT
public static final int SMALLINTThe value type for SMALLINT values.- See Also:
-
INTEGER
public static final int INTEGERThe value type for INTEGER values.- See Also:
-
BIGINT
public static final int BIGINTThe value type for BIGINT values.- See Also:
-
NUMERIC
public static final int NUMERICThe value type for NUMERIC values.- See Also:
-
REAL
public static final int REALThe value type for REAL values.- See Also:
-
DOUBLE
public static final int DOUBLEThe value type for DOUBLE PRECISION values.- See Also:
-
DECFLOAT
public static final int DECFLOATThe value type for DECFLOAT values.- See Also:
-
DATE
public static final int DATEThe value type for DATE values.- See Also:
-
TIME
public static final int TIMEThe value type for TIME values.- See Also:
-
TIME_TZ
public static final int TIME_TZThe value type for TIME WITH TIME ZONE values.- See Also:
-
TIMESTAMP
public static final int TIMESTAMPThe value type for TIMESTAMP values.- See Also:
-
TIMESTAMP_TZ
public static final int TIMESTAMP_TZThe value type for TIMESTAMP WITH TIME ZONE values.- See Also:
-
INTERVAL_YEAR
public static final int INTERVAL_YEARThe value type forINTERVAL YEAR
values.- See Also:
-
INTERVAL_MONTH
public static final int INTERVAL_MONTHThe value type forINTERVAL MONTH
values.- See Also:
-
INTERVAL_DAY
public static final int INTERVAL_DAYThe value type forINTERVAL DAY
values.- See Also:
-
INTERVAL_HOUR
public static final int INTERVAL_HOURThe value type forINTERVAL HOUR
values.- See Also:
-
INTERVAL_MINUTE
public static final int INTERVAL_MINUTEThe value type forINTERVAL MINUTE
values.- See Also:
-
INTERVAL_SECOND
public static final int INTERVAL_SECONDThe value type forINTERVAL SECOND
values.- See Also:
-
INTERVAL_YEAR_TO_MONTH
public static final int INTERVAL_YEAR_TO_MONTHThe value type forINTERVAL YEAR TO MONTH
values.- See Also:
-
INTERVAL_DAY_TO_HOUR
public static final int INTERVAL_DAY_TO_HOURThe value type forINTERVAL DAY TO HOUR
values.- See Also:
-
INTERVAL_DAY_TO_MINUTE
public static final int INTERVAL_DAY_TO_MINUTEThe value type forINTERVAL DAY TO MINUTE
values.- See Also:
-
INTERVAL_DAY_TO_SECOND
public static final int INTERVAL_DAY_TO_SECONDThe value type forINTERVAL DAY TO SECOND
values.- See Also:
-
INTERVAL_HOUR_TO_MINUTE
public static final int INTERVAL_HOUR_TO_MINUTEThe value type forINTERVAL HOUR TO MINUTE
values.- See Also:
-
INTERVAL_HOUR_TO_SECOND
public static final int INTERVAL_HOUR_TO_SECONDThe value type forINTERVAL HOUR TO SECOND
values.- See Also:
-
INTERVAL_MINUTE_TO_SECOND
public static final int INTERVAL_MINUTE_TO_SECONDThe value type forINTERVAL MINUTE TO SECOND
values.- See Also:
-
JAVA_OBJECT
public static final int JAVA_OBJECTThe value type for JAVA_OBJECT values.- See Also:
-
ENUM
public static final int ENUMThe value type for ENUM values.- See Also:
-
GEOMETRY
public static final int GEOMETRYThe value type for string values with a fixed size.- See Also:
-
JSON
public static final int JSONThe value type for JSON values.- See Also:
-
UUID
public static final int UUIDThe value type for UUID values.- See Also:
-
ARRAY
public static final int ARRAYThe value type for ARRAY values.- See Also:
-
ROW
public static final int ROWThe value type for ROW values.- See Also:
-
TYPE_COUNT
public static final int TYPE_COUNTThe number of value types.- See Also:
-
GROUP_NULL
static final int GROUP_NULLGroup for untyped NULL data type.- See Also:
-
GROUP_CHARACTER_STRING
static final int GROUP_CHARACTER_STRINGGroup for character string data types.- See Also:
-
GROUP_BINARY_STRING
static final int GROUP_BINARY_STRINGGroup for binary string data types.- See Also:
-
GROUP_BOOLEAN
static final int GROUP_BOOLEANGroup for BINARY data type.- See Also:
-
GROUP_NUMERIC
static final int GROUP_NUMERICGroup for numeric data types.- See Also:
-
GROUP_DATETIME
static final int GROUP_DATETIMEGroup for datetime data types.- See Also:
-
GROUP_INTERVAL_YM
static final int GROUP_INTERVAL_YMGroup for year-month interval data types.- See Also:
-
GROUP_INTERVAL_DT
static final int GROUP_INTERVAL_DTGroup for day-time interval data types.- See Also:
-
GROUP_OTHER
static final int GROUP_OTHERGroup for other data types (JAVA_OBJECT, UUID, GEOMETRY, ENUM, JSON).- See Also:
-
GROUP_COLLECTION
static final int GROUP_COLLECTIONGroup for collection data types (ARRAY, ROW).- See Also:
-
GROUPS
static final byte[] GROUPS -
NAMES
-
EMPTY_VALUES
Empty array of values. -
softCache
-
MAX_LONG_DECIMAL
-
MIN_LONG_DECIMAL
The smallest Long value, as a BigDecimal. -
CONVERT_TO
static final int CONVERT_TOConvert a value to the specified type without taking scale and precision into account.- See Also:
-
CAST_TO
static final int CAST_TOCast a value to the specified type. The scale is set if applicable. The value is truncated to a required precision.- See Also:
-
ASSIGN_TO
static final int ASSIGN_TOCast a value to the specified type for assignment. The scale is set if applicable. If precision is too large an exception is thrown.- See Also:
-
-
Constructor Details
-
Value
public Value()
-
-
Method Details
-
getTypeName
Returns name of the specified data type.- Parameters:
valueType
- the value type- Returns:
- the name
-
rangeCheck
static void rangeCheck(long zeroBasedOffset, long length, long dataSize) Check the range of the parameters.- Parameters:
zeroBasedOffset
- the offset (0 meaning no offset)length
- the length of the targetdataSize
- the length of the source
-
getType
Description copied from interface:Typed
Returns the data type. -
getValueType
public abstract int getValueType()Get the value type.- Returns:
- the value type
-
getMemory
public int getMemory()Get the memory used by this object.- Returns:
- the memory used in bytes
-
hashCode
public abstract int hashCode() -
equals
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. -
getHigherOrder
public static int getHigherOrder(int t1, int t2) Get the higher value order type of two value types. If values need to be converted to match the other operands value type, the value with the lower order is converted to the value with the higher order.- Parameters:
t1
- the first value typet2
- the second value type- Returns:
- the higher value type of the two
-
getHigherOrderKnown
static int getHigherOrderKnown(int t1, int t2) -
getHigherNumeric
private static int getHigherNumeric(int t1, int t2, int g2) -
getHigherDateTime
private static int getHigherDateTime(int t1, int t2, int g2) -
getHigherIntervalYearMonth
private static int getHigherIntervalYearMonth(int t1, int t2, int g2) -
getHigherIntervalDayTime
private static int getHigherIntervalDayTime(int t1, int t2, int g2) -
getHigherOther
private static int getHigherOther(int t1, int t2, int g2) -
getDataTypeCombinationException
-
cache
Check if a value is in the cache that is equal to this value. If yes, this value should be used to save memory. If the value is not in the cache yet, it is added.- Parameters:
v
- the value to look for- Returns:
- the value in the cache or the value passed
-
clearCache
public static void clearCache()Clear the value cache. Used for testing. -
getString
Get the value as a string.- Returns:
- the string
-
getReader
-
getReader
Get the reader- Parameters:
oneBasedOffset
- the offset (1 means no offset)length
- the requested length- Returns:
- the new reader
-
getBytes
public byte[] getBytes() -
getBytesNoCopy
public byte[] getBytesNoCopy() -
getInputStream
-
getInputStream
Get the input stream- Parameters:
oneBasedOffset
- the offset (1 means no offset)length
- the requested length- Returns:
- the new input stream
-
getBoolean
public boolean getBoolean()Returns this value as a Javaboolean
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toBOOLEAN
- See Also:
-
getByte
public byte getByte()Returns this value as a Javabyte
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toTINYINT
-
getShort
public short getShort()Returns this value as a Javashort
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toSMALLINT
-
getInt
public int getInt()Returns this value as a Javaint
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toINTEGER
-
getLong
public long getLong()Returns this value as a Javalong
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toBIGINT
-
getBigDecimal
-
getFloat
public float getFloat()Returns this value as a Javafloat
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toREAL
-
getDouble
public double getDouble()Returns this value as a Javadouble
value.- Returns:
- value
- Throws:
DbException
- if this value isNULL
or cannot be casted toDOUBLE PRECISION
-
add
Add a value and return the result.- Parameters:
v
- the value to add- Returns:
- the result
-
getSignum
public int getSignum() -
negate
Return -value if this value support arithmetic operations.- Returns:
- the negative
-
subtract
Subtract a value and return the result.- Parameters:
v
- the value to subtract- Returns:
- the result
-
divide
Divide by a value and return the result.- Parameters:
v
- the divisorquotientType
- the type of quotient (used only to read precision and scale when applicable)- Returns:
- the result
-
multiply
Multiply with a value and return the result.- Parameters:
v
- the value to multiply with- Returns:
- the result
-
modulus
Take the modulus with a value and return the result.- Parameters:
v
- the value to take the modulus with- Returns:
- the result
-
convertTo
Convert a value to the specified type without taking scale and precision into account.- Parameters:
targetType
- the type of the returned value- Returns:
- the converted value
-
convertTo
Convert a value to the specified type without taking scale and precision into account.- Parameters:
targetType
- the type of the returned value- Returns:
- the converted value
-
convertTo
Convert a value to the specified type without taking scale and precision into account.- Parameters:
targetType
- the type of the returned valueprovider
- the cast information provider- Returns:
- the converted value
-
convertTo
Convert a value to the specified type without taking scale and precision into account.- Parameters:
targetType
- the type of the returned valueprovider
- the cast information provider- Returns:
- the converted value
-
convertTo
Convert a value to the specified type without taking scale and precision into account.- Parameters:
targetType
- the type of the returned valueprovider
- the cast information providercolumn
- the column, used to improve the error message if conversion fails- Returns:
- the converted value
-
convertToAnyArray
Convert this value to any ARRAY data type.- Parameters:
provider
- the cast information provider- Returns:
- a row value
-
convertToAnyRow
Convert this value to any ROW data type.- Returns:
- a row value
-
castTo
Cast a value to the specified type. The scale is set if applicable. The value is truncated to the required precision.- Parameters:
targetType
- the type of the returned valueprovider
- the cast information provider- Returns:
- the converted value
-
convertForAssignTo
public final Value convertForAssignTo(TypeInfo targetType, CastDataProvider provider, Object column) Cast a value to the specified type for assignment. The scale is set if applicable. If precision is too large an exception is thrown.- Parameters:
targetType
- the type of the returned valueprovider
- the cast information providercolumn
- the column, used to improve the error message if conversion fails- Returns:
- the converted value
-
convertTo
private Value convertTo(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) Convert a value to the specified type.- Parameters:
targetType
- the type of the returned valueprovider
- the cast information providerconversionMode
- conversion modecolumn
- the column (if any), used to improve the error message if conversion fails- Returns:
- the converted value
-
convertToChar
Converts this value to a CHAR value. May not be called on a NULL value.- Returns:
- a CHAR value.
-
convertToChar
private ValueChar convertToChar(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) -
convertToVarchar
private Value convertToVarchar(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) -
convertToClob
-
convertToVarcharIgnoreCase
-
convertToBinary
-
convertToVarbinary
-
convertToBlob
-
convertToBoolean
Converts this value to a BOOLEAN value. May not be called on a NULL value.- Returns:
- the BOOLEAN value
-
convertToTinyint
Converts this value to a TINYINT value. May not be called on a NULL value.- Parameters:
column
- the column, used for to improve the error message if conversion fails- Returns:
- the TINYINT value
-
convertToSmallint
Converts this value to a SMALLINT value. May not be called on a NULL value.- Parameters:
column
- the column, used for to improve the error message if conversion fails- Returns:
- the SMALLINT value
-
convertToInt
Converts this value to a INT value. May not be called on a NULL value.- Parameters:
column
- the column, used for to improve the error message if conversion fails- Returns:
- the INT value
-
convertToBigint
Converts this value to a BIGINT value. May not be called on a NULL value.- Parameters:
column
- the column, used for to improve the error message if conversion fails- Returns:
- the BIGINT value
-
convertToNumeric
private ValueNumeric convertToNumeric(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) -
convertToReal
Converts this value to a REAL value. May not be called on a NULL value.- Returns:
- the REAL value
-
convertToDouble
Converts this value to a DOUBLE value. May not be called on a NULL value.- Returns:
- the DOUBLE value
-
convertToDecfloat
-
convertToDate
Converts this value to a DATE value. May not be called on a NULL value.- Parameters:
provider
- the cast information provider- Returns:
- the DATE value
-
convertToTime
-
convertToTimeTimeZone
private ValueTimeTimeZone convertToTimeTimeZone(TypeInfo targetType, CastDataProvider provider, int conversionMode) -
convertToTimestamp
private ValueTimestamp convertToTimestamp(TypeInfo targetType, CastDataProvider provider, int conversionMode) -
getLocalTimeNanos
-
convertToTimestampTimeZone
private ValueTimestampTimeZone convertToTimestampTimeZone(TypeInfo targetType, CastDataProvider provider, int conversionMode) -
convertToIntervalYearMonth
private ValueInterval convertToIntervalYearMonth(TypeInfo targetType, int conversionMode, Object column) -
convertToIntervalYearMonth
-
convertToIntervalDayTime
private ValueInterval convertToIntervalDayTime(TypeInfo targetType, int conversionMode, Object column) -
convertToIntervalDayTime
-
convertToIntervalDayTime
-
convertToJavaObject
public final ValueJavaObject convertToJavaObject(TypeInfo targetType, int conversionMode, Object column) Converts this value to a JAVA_OBJECT value. May not be called on a NULL value.- Parameters:
targetType
- the type of the returned valueconversionMode
- conversion modecolumn
- the column (if any), used to improve the error message if conversion fails- Returns:
- the JAVA_OBJECT value
-
convertToEnum
Converts this value to an ENUM value. May not be called on a NULL value.- Parameters:
extTypeInfo
- the extended data type informationprovider
- the cast information provider- Returns:
- the ENUM value
-
convertToGeometry
Converts this value to a GEOMETRY value. May not be called on a NULL value.- Parameters:
extTypeInfo
- the extended data type information, or null- Returns:
- the GEOMETRY value
-
convertToJson
-
convertToUuid
Converts this value to a UUID value. May not be called on a NULL value.- Returns:
- the UUID value
-
convertToArray
private ValueArray convertToArray(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) -
convertToRow
private Value convertToRow(TypeInfo targetType, CastDataProvider provider, int conversionMode, Object column) -
getDataConversionError
Creates new instance of the DbException for data conversion error.- Parameters:
targetType
- Target data type.- Returns:
- instance of the DbException.
-
getDataConversionError
Creates new instance of the DbException for data conversion error.- Parameters:
targetType
- target data type.- Returns:
- instance of the DbException.
-
getValueTooLongException
-
compareTypeSafe
Compare this value against another value given that the values are of the same data type.- 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
-
compareTo
Compare this value against another value using the specified compare mode.- Parameters:
v
- the other valueprovider
- the cast information providercompareMode
- the compare mode- Returns:
- 0 if both values are equal, -1 if this value is smaller, and 1 otherwise
-
compareToNotNullable
-
compareWithNull
public int compareWithNull(Value v, boolean forEquality, CastDataProvider provider, CompareMode compareMode) Compare this value against another value using the specified compare mode.- Parameters:
v
- the other valueforEquality
- perform only check for equalityprovider
- the cast information providercompareMode
- the compare mode- Returns:
- 0 if both values are equal, -1 if this value is smaller, 1
if other value is larger,
Integer.MIN_VALUE
if order is not defined due to NULL comparison
-
containsNull
public boolean containsNull()Returns true if this value is NULL or contains NULL value.- Returns:
- true if this value is NULL or contains NULL value
-
convertToByte
-
convertToShort
-
convertToInt
Convert to integer, throwing exception if out of range.- Parameters:
x
- integer value.column
- Column info.- Returns:
- x
-
convertToLong
-
convertToLong
-
getColumnName
-
toString
-
getUnsupportedExceptionForOperation
Create an exception meaning the specified operation is not supported for this data type.- Parameters:
op
- the operation- Returns:
- the exception
-
charLength
public long charLength()Returns length of this value in characters.- Returns:
- length of this value in characters
- Throws:
NullPointerException
- if this value isNULL
-
octetLength
public long octetLength()Returns length of this value in bytes.- Returns:
- length of this value in bytes
- Throws:
NullPointerException
- if this value isNULL
-
isTrue
public final boolean isTrue()Returns whether this valueIS TRUE
.- Returns:
true
if it is. ForBOOLEAN
values returnstrue
forTRUE
andfalse
forFALSE
andUNKNOWN
(NULL
).- See Also:
-
isFalse
public final boolean isFalse()Returns whether this valueIS FALSE
.- Returns:
true
if it is. ForBOOLEAN
values returnstrue
forFALSE
andfalse
forTRUE
andUNKNOWN
(NULL
).- See Also:
-