Package org.h2.value
Class ValueLob
- java.lang.Object
-
- org.h2.value.VersionedValue<Value>
-
- org.h2.value.Value
-
- org.h2.value.ValueLob
-
public abstract class ValueLob extends Value
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
-
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, 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 class org.h2.value.VersionedValue
NO_ENTRY_ID, NO_OPERATION_ID
-
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
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract ValueLobcopy(DataHandler database, int tableId)Copy a large value, to be used in the given table.ValueLobcopyToResult()Create an independent copy of this value, that will be bound to a result.booleanequals(java.lang.Object other)Check if the two values have the same hash code.byte[]getBytes()byte[]getBytesNoCopy()LobDatagetLobData()intgetMemory()Get the memory used by this object.java.io.ReadergetReader()TypeInfogetType()Returns the data type.inthashCode()booleanisLinkedToTable()Check if this value is linked to a specific table.protected static java.io.InputStreamrangeInputStream(java.io.InputStream inputStream, long oneBasedOffset, long length, long dataSize)Create an input stream that is s subset of the given stream.voidremove()Remove the underlying resource, if any.-
Methods inherited from class org.h2.value.Value
add, castTo, charLength, clearCache, compareTo, compareTypeSafe, compareWithNull, containsNull, convertForAssignTo, convertTo, convertTo, convertTo, convertTo, convertTo, convertToAnyArray, convertToAnyJson, convertToAnyRow, convertToBigint, convertToBoolean, convertToChar, convertToDate, convertToDouble, convertToEnum, convertToGeometry, convertToInt, convertToInt, convertToJavaObject, convertToJson, convertToLong, convertToReal, convertToSmallint, convertToTinyint, convertToUuid, divide, getBigDecimal, getBigInteger, getBoolean, getByte, getDouble, getFloat, getHigherOrder, getInputStream, getInputStream, getInt, getLong, getReader, getShort, getSignum, getString, getTypeName, getUnsupportedExceptionForOperation, getValueType, getValueWithFirstNull, isFalse, isTrue, modulus, multiply, negate, octetLength, subtract, toString
-
Methods inherited from class org.h2.value.VersionedValue
getCommittedValue, getCurrentValue, getEntryId, 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
-
-
-
-
Method Detail
-
rangeInputStream
protected static java.io.InputStream rangeInputStream(java.io.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
-
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
public abstract ValueLob copy(DataHandler database, int tableId)
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
-
getBytesNoCopy
public byte[] getBytesNoCopy()
- Overrides:
getBytesNoCopyin classValue
-
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.
-
getLobData
public LobData getLobData()
-
copyToResult
public ValueLob copyToResult()
Create an independent copy of this value, that will be bound to a result.- Returns:
- the value (this for small objects)
-
-