Package org.h2.value
Class ValueBlob
Implementation of the BINARY LARGE OBJECT data type.
-
Field Summary
Fields inherited from class org.h2.value.ValueLob
BLOCK_COMPARISON_SIZE, charLength, lobData, octetLength
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 -
Method Summary
Modifier and TypeMethodDescriptionlong
Returns length of this value in characters.private static int
Compares two BLOB values directly.int
compareTypeSafe
(Value v, CompareMode mode, CastDataProvider provider) Compare this value against another value given that the values are of the same data type.(package private) ValueBlob
convertPrecision
(long precision) Convert the precision to the requested value.copy
(DataHandler database, int tableId) Copy a large value, to be used in the given table.static ValueBlob
createSmall
(byte[] data) Creates a small BLOB value that can be stored in the row directly.static ValueBlob
createTempBlob
(InputStream in, long length, DataHandler handler) Create a temporary BLOB value from a stream.private static ValueBlob
createTemporary
(DataHandler handler, byte[] buff, int len, InputStream in, long remaining) Create a BLOB in a temporary file.(package private) byte[]
getInputStream
(long oneBasedOffset, long length) Get the input streamgetReader
(long oneBasedOffset, long length) Get the readergetSQL
(StringBuilder builder, int sqlFlags) Appends the SQL statement of this object to the specified builder.Get the value as a string.int
Get the value type.long
Returns length of this value in bytes.Methods inherited from class org.h2.value.ValueLob
copyToResult, createTempLobFileName, equals, getBinaryTooLong, getBufferSize, getBytes, getBytesNoCopy, getLobData, getMemory, getReader, getStringTooLong, getType, hashCode, isLinkedToTable, rangeInputStream, rangeReader, readBytes, readString, remove
Methods inherited from class org.h2.value.Value
add, cache, castTo, 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, getBigDecimal, getBoolean, getByte, getDataConversionError, getDataConversionError, getDouble, getFloat, getHigherOrder, getHigherOrderKnown, getInt, getLong, getShort, getSignum, getTypeName, getUnsupportedExceptionForOperation, getValueTooLongException, isFalse, isTrue, modulus, multiply, negate, rangeCheck, subtract, 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
-
Constructor Details
-
ValueBlob
-
-
Method Details
-
createSmall
Creates a small BLOB value that can be stored in the row directly.- Parameters:
data
- the data- Returns:
- the BLOB
-
createTempBlob
Create a temporary BLOB value from a stream.- Parameters:
in
- the input streamlength
- the number of characters to read, or -1 for no limithandler
- the data handler- Returns:
- the lob value
-
createTemporary
private static ValueBlob createTemporary(DataHandler handler, byte[] buff, int len, InputStream in, long remaining) throws IOException Create a BLOB in a temporary file.- Throws:
IOException
-
getValueType
public int getValueType()Description copied from class:Value
Get the value type.- Specified by:
getValueType
in classValue
- Returns:
- the value type
-
getString
Description copied from class:Value
Get the value as a string. -
getBytesInternal
byte[] getBytesInternal()- Specified by:
getBytesInternal
in classValueLob
-
getInputStream
- Overrides:
getInputStream
in classValue
-
getInputStream
Description copied from class:Value
Get the input stream- Overrides:
getInputStream
in classValue
- Parameters:
oneBasedOffset
- the offset (1 means no offset)length
- the requested length- Returns:
- the new input stream
-
getReader
Description copied from class:Value
Get the reader -
compareTypeSafe
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
-
compare
Compares two BLOB values directly.- Parameters:
v1
- first BLOB valuev2
- second BLOB value- Returns:
- result of comparison
-
getSQL
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
-
convertPrecision
Convert the precision to the requested value.- Parameters:
precision
- the new precision- Returns:
- the truncated or this value
-
copy
Description copied from class:ValueLob
Copy a large value, to be used in the given table. For values that are kept fully in memory this method has no effect. -
charLength
public long charLength()Description copied from class:Value
Returns length of this value in characters.- Overrides:
charLength
in classValue
- Returns:
- length of this value in characters
-
octetLength
public long octetLength()Description copied from class:Value
Returns length of this value in bytes.- Overrides:
octetLength
in classValue
- Returns:
- length of this value in bytes
-