|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.h2.value.Value
org.h2.value.ValueLob
public class ValueLob
Implementation of the BLOB and CLOB data types. Small objects are kept in memory and stored in the record. Large objects are stored in their own files. When large objects are set in a prepared statement, they are first stored as 'temporary' files. Later, when they are used in a record, and when the record is stored, the lob files are linked: the file is renamed using the file format (tableId).(objectId). There is one exception: large variables are stored in the file (-1).(objectId). When lobs are deleted, they are first renamed to a temp file, and if the delete operation is committed the file is deleted. Data compression is supported.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.h2.value.Value |
---|
Value.ValueBlob, Value.ValueClob |
Field Summary |
---|
Fields inherited from class org.h2.value.Value |
---|
ARRAY, BLOB, BOOLEAN, BYTE, BYTES, CLOB, DATE, DECIMAL, DOUBLE, FLOAT, GEOMETRY, INT, JAVA_OBJECT, LONG, NULL, RESULT_SET, SHORT, STRING, STRING_FIXED, STRING_IGNORECASE, TIME, TIMESTAMP, TYPE_COUNT, UNKNOWN, UUID |
Method Summary | |
---|---|
void |
close()
Close the underlying resource, if any. |
protected int |
compareSecure(Value v,
CompareMode mode)
Compare the value with another value of the same type. |
Value |
convertPrecision(long precision,
boolean force)
Convert the precision to the requested value. |
Value |
convertTo(int t)
Convert a lob to another data type. |
void |
convertToFileIfRequired(DataHandler h)
Store the lob data to a file if the size of the buffer is larger than the maximum size for an in-place lob. |
ValueLob |
copyToTemp()
Create an independent copy of this temporary value. |
boolean |
equals(java.lang.Object other)
Check if the two values have the same hash code. |
byte[] |
getBytes()
|
byte[] |
getBytesNoCopy()
|
int |
getDisplaySize()
Get the display size in characters. |
java.lang.String |
getFileName()
Get the current file name where the lob is saved. |
java.io.InputStream |
getInputStream()
|
int |
getMemory()
Get the memory used by this object. |
java.lang.Object |
getObject()
Get the value as an object. |
int |
getObjectId()
Get the current object id of this lob. |
long |
getPrecision()
Get the precision. |
java.io.Reader |
getReader()
|
byte[] |
getSmall()
Get the data if this a small lob value. |
java.lang.String |
getSQL()
Get the SQL expression for this value. |
java.lang.String |
getString()
Get the value as a string. |
int |
getTableId()
Get the current table id of this lob. |
java.lang.String |
getTraceSQL()
Get a medium size SQL expression for debugging or tracing. |
int |
getType()
Get the value type. |
int |
hashCode()
|
boolean |
isCompressed()
Check if this lob value is compressed. |
boolean |
isLinked()
Check if this value is linked to a specific table. |
Value |
link(DataHandler h,
int tabId)
Link a large value to a given table. |
static ValueLob |
openLinked(int type,
DataHandler handler,
int tableId,
int objectId,
long precision,
boolean compression)
Create a LOB value with the given parameters. |
static ValueLob |
openUnlinked(int type,
DataHandler handler,
int tableId,
int objectId,
long precision,
boolean compression,
java.lang.String fileName)
Create a LOB value with the given parameters. |
void |
set(java.sql.PreparedStatement prep,
int parameterIndex)
Set the value as a parameter in a prepared statement. |
void |
unlink(DataHandler handler)
Mark any underlying resource as 'not linked to any table'. |
Methods inherited from class org.h2.value.Value |
---|
add, checkPrecision, clearCache, compareTo, compareTypeSave, convertScale, divide, getBigDecimal, getBoolean, getByte, getDataHandler, getDate, getDouble, getFloat, getHigherOrder, getInt, getLong, getResultSet, getScale, getShort, getSignum, getTime, getTimestamp, modulus, multiply, negate, subtract, throwUnsupportedExceptionForType, toString |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Method Detail |
---|
public static ValueLob openLinked(int type, DataHandler handler, int tableId, int objectId, long precision, boolean compression)
type
- the data typehandler
- the file handlertableId
- the table object idobjectId
- the object idprecision
- the precision (length in elements)compression
- if compression is used
public static ValueLob openUnlinked(int type, DataHandler handler, int tableId, int objectId, long precision, boolean compression, java.lang.String fileName)
type
- the data typehandler
- the file handlertableId
- the table object idobjectId
- the object idprecision
- the precision (length in elements)compression
- if compression is usedfileName
- the file name
public Value convertTo(int t)
convertTo
in class Value
t
- the new type
public boolean isLinked()
Value
isLinked
in class Value
public java.lang.String getFileName()
public void close()
Value
close
in class Value
public void unlink(DataHandler handler)
Value
unlink
in class Value
handler
- the data handlerpublic Value link(DataHandler h, int tabId)
Value
link
in class Value
h
- the data handlertabId
- the table to link to
public int getTableId()
getTableId
in class Value
public int getObjectId()
public int getType()
Value
getType
in class Value
public long getPrecision()
Value
getPrecision
in class Value
public java.lang.String getString()
Value
getString
in class Value
public byte[] getBytes()
getBytes
in class Value
public byte[] getBytesNoCopy()
getBytesNoCopy
in class Value
public int hashCode()
hashCode
in class Value
protected int compareSecure(Value v, CompareMode mode)
Value
compareSecure
in class Value
v
- the other valuemode
- the compare mode
public java.lang.Object getObject()
Value
getObject
in class Value
public java.io.Reader getReader()
getReader
in class Value
public java.io.InputStream getInputStream()
getInputStream
in class Value
public void set(java.sql.PreparedStatement prep, int parameterIndex) throws java.sql.SQLException
Value
set
in class Value
prep
- the prepared statementparameterIndex
- the parameter index
java.sql.SQLException
public java.lang.String getSQL()
Value
getSQL
in class Value
public java.lang.String getTraceSQL()
Value
getTraceSQL
in class Value
public byte[] getSmall()
getSmall
in class Value
public int getDisplaySize()
Value
getDisplaySize
in class Value
public boolean equals(java.lang.Object other)
Value
equals
in class Value
other
- the other value
public void convertToFileIfRequired(DataHandler h)
h
- the data handlerpublic boolean isCompressed()
public int getMemory()
Value
getMemory
in class Value
public ValueLob copyToTemp()
copyToTemp
in class Value
public Value convertPrecision(long precision, boolean force)
Value
convertPrecision
in class Value
precision
- the new precisionforce
- true if losing numeric precision is allowed
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |