Package org.h2.value

Class ValueLob

All Implemented Interfaces:
HasSQL, Typed
Direct Known Subclasses:
ValueBlob, ValueClob

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.
  • Method Details

    • 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 stream
      oneBasedOffset - the offset (1 means no offset)
      length - the length of the result, in bytes
      dataSize - 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 handler
      tableId - the table where this object is used
      Returns:
      the new value or itself
    • getType

      public TypeInfo getType()
      Description copied from interface: Typed
      Returns the data type.
      Specified by:
      getType in interface Typed
      Specified by:
      getType in class Value
      Returns:
      the data type
    • getReader

      public Reader getReader()
      Overrides:
      getReader in class Value
    • getBytes

      public byte[] getBytes()
      Overrides:
      getBytes in class Value
    • getBytesNoCopy

      public byte[] getBytesNoCopy()
      Overrides:
      getBytesNoCopy in class Value
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class Value
    • equals

      public boolean equals(Object other)
      Description copied from class: Value
      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.
      Specified by:
      equals in class Value
      Parameters:
      other - the other value
      Returns:
      true if they are equal
    • getMemory

      public int getMemory()
      Description copied from class: Value
      Get the memory used by this object.
      Overrides:
      getMemory in class Value
      Returns:
      the memory used in bytes
    • 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)