Package org.h2.value
Class ValueLob
A implementation of the BINARY LARGE OBJECT and CHARACTER LARGE OBJECT data
types. Small objects are kept in memory and stored in the record. Large
objects are either stored in the database, or in temporary files.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final int(package private) longLength in characters.private intCache the hashCode because it can be expensive to compute.(package private) final LobData(package private) longLength in bytes.private TypeInfoFields 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_IGNORECASEFields 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 TypeMethodDescriptionabstract ValueLobcopy(DataHandler database, int tableId) Copy a large value, to be used in the given table.Create an independent copy of this value, that will be bound to a result.(package private) static StringcreateTempLobFileName(DataHandler handler) Create file name for temporary LOB storagebooleanCheck if the two values have the same hash code.(package private) DbExceptiongetBinaryTooLong(long precision) (package private) static intgetBufferSize(DataHandler handler, long remaining) byte[]getBytes()(package private) abstract byte[]byte[]intGet the memory used by this object.private byte[]getSmall()(package private) DbExceptiongetStringTooLong(long precision) getType()Returns the data type.inthashCode()booleanCheck if this value is linked to a specific table.private static voidrangeCheckUnknown(long zeroBasedOffset, long length) protected static InputStreamrangeInputStream(InputStream inputStream, long oneBasedOffset, long length, long dataSize) Create an input stream that is s subset of the given stream.(package private) static ReaderrangeReader(Reader reader, long oneBasedOffset, long length, long dataSize) Create a reader that is s subset of the given reader.(package private) byte[]readBytes(int len) (package private) StringreadString(int len) voidremove()Remove the underlying resource, if any.Methods inherited from class org.h2.value.Value
add, cache, castTo, charLength, clearCache, compareTo, compareTypeSafe, 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, getBigDecimal, getBoolean, getByte, getDataConversionError, getDataConversionError, getDouble, getFloat, getHigherOrder, getHigherOrderKnown, getInputStream, getInputStream, getInt, getLong, getReader, getShort, getSignum, getString, getTypeName, getUnsupportedExceptionForOperation, getValueTooLongException, getValueType, isFalse, isTrue, modulus, multiply, negate, octetLength, rangeCheck, subtract, toStringMethods inherited from class org.h2.value.VersionedValue
getCommittedValue, getCurrentValue, getOperationId, isCommittedMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.h2.util.HasSQL
getSQL, getSQL, getTraceSQL
-
Field Details
-
BLOCK_COMPARISON_SIZE
static final int BLOCK_COMPARISON_SIZE- See Also:
-
type
-
lobData
-
octetLength
long octetLengthLength in bytes. -
charLength
long charLengthLength in characters. -
hash
private int hashCache the hashCode because it can be expensive to compute.
-
-
Constructor Details
-
ValueLob
ValueLob(LobData lobData, long octetLength, long charLength)
-
-
Method Details
-
rangeCheckUnknown
private static void rangeCheckUnknown(long zeroBasedOffset, long length) -
rangeInputStream
protected static InputStream rangeInputStream(InputStream inputStream, long oneBasedOffset, long length, long dataSize) Create an input stream that is s subset of the given stream.- Parameters:
inputStream- the source input streamoneBasedOffset- the offset (1 means no offset)length- the length of the result, in bytesdataSize- the length of the input, in bytes- Returns:
- the smaller input stream
-
rangeReader
Create a reader that is s subset of the given reader.- Parameters:
reader- the input readeroneBasedOffset- the offset (1 means no offset)length- the length of the result, in bytesdataSize- the length of the input, in bytes- Returns:
- the smaller input stream
-
createTempLobFileName
Create file name for temporary LOB storage- Parameters:
handler- to get path from- Returns:
- full path and name of the created file
- Throws:
IOException- if file creation fails
-
getBufferSize
-
isLinkedToTable
public boolean isLinkedToTable()Check if this value is linked to a specific table. For values that are kept fully in memory, this method returns false.- Returns:
- true if it is
-
remove
public void remove()Remove the underlying resource, if any. For values that are kept fully in memory this method has no effect. -
copy
Copy a large value, to be used in the given table. For values that are kept fully in memory this method has no effect.- Parameters:
database- the data handlertableId- the table where this object is used- Returns:
- the new value or itself
-
getType
Description copied from interface:TypedReturns the data type. -
getStringTooLong
-
readString
-
getReader
-
getBytes
public byte[] getBytes() -
getBytesNoCopy
public byte[] getBytesNoCopy()- Overrides:
getBytesNoCopyin classValue
-
getSmall
private byte[] getSmall() -
getBytesInternal
abstract byte[] getBytesInternal() -
getBinaryTooLong
-
readBytes
byte[] readBytes(int len) -
hashCode
public int 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. -
getMemory
public int getMemory()Description copied from class:ValueGet the memory used by this object. -
getLobData
-
copyToResult
Create an independent copy of this value, that will be bound to a result.- Returns:
- the value (this for small objects)
-