Class TemporaryRowHolderImpl

java.lang.Object
org.apache.derby.impl.sql.execute.TemporaryRowHolderImpl
All Implemented Interfaces:
TemporaryRowHolder

class TemporaryRowHolderImpl extends Object implements TemporaryRowHolder
This is a class that is used to temporarily (non-persistently) hold rows that are used in language execution. It will store them in an array, or a temporary conglomerate, depending on the number of rows.

It is used for deferred DML processing.

  • Field Details

    • DEFAULT_OVERFLOWTHRESHOLD

      public static final int DEFAULT_OVERFLOWTHRESHOLD
      See Also:
    • STATE_UNINIT

      protected static final int STATE_UNINIT
      See Also:
    • STATE_INSERT

      protected static final int STATE_INSERT
      See Also:
    • STATE_DRAIN

      protected static final int STATE_DRAIN
      See Also:
    • rowArray

      protected ExecRow[] rowArray
    • lastArraySlot

      protected int lastArraySlot
    • numRowsIn

      private int numRowsIn
    • state

      protected int state
    • CID

      private long CID
    • conglomCreated

      private boolean conglomCreated
    • cc

    • properties

      private Properties properties
    • scan

      private ScanController scan
    • resultDescription

      private ResultDescription resultDescription
    • activation

      Activation activation
      Activation object with local state information.
    • isUniqueStream

      private boolean isUniqueStream
    • isVirtualMemHeap

      private boolean isVirtualMemHeap
    • uniqueIndexCreated

      private boolean uniqueIndexCreated
    • positionIndexCreated

      private boolean positionIndexCreated
    • uniqueIndexConglomId

      private long uniqueIndexConglomId
    • positionIndexConglomId

      private long positionIndexConglomId
    • uniqueIndex_cc

      private ConglomerateController uniqueIndex_cc
    • positionIndex_cc

      private ConglomerateController positionIndex_cc
    • uniqueIndexRow

      private DataValueDescriptor[] uniqueIndexRow
    • positionIndexRow

      private DataValueDescriptor[] positionIndexRow
    • destRowLocation

      private RowLocation destRowLocation
    • position_sqllong

      private SQLLongint position_sqllong
  • Constructor Details

    • TemporaryRowHolderImpl

      public TemporaryRowHolderImpl(Activation activation, Properties properties, ResultDescription resultDescription)
      Uses the default overflow to a conglomerate threshold (5).
      Parameters:
      activation - the activation
      properties - the properties of the original table. Used to help the store use optimal page size, etc.
      resultDescription - the result description. Relevant for the getResultDescription call on the result set returned by getResultSet. May be null
    • TemporaryRowHolderImpl

      public TemporaryRowHolderImpl(Activation activation, Properties properties, ResultDescription resultDescription, boolean isUniqueStream)
      Uses the default overflow to a conglomerate threshold (5).
      Parameters:
      activation - the activation
      properties - the properties of the original table. Used to help the store use optimal page size, etc.
      resultDescription - the result description. Relevant for the getResultDescription call on the result set returned by getResultSet. May be null
      isUniqueStream - - true , if it has to be temporary row holder unique stream
    • TemporaryRowHolderImpl

      public TemporaryRowHolderImpl(Activation activation, Properties properties, ResultDescription resultDescription, int overflowToConglomThreshold, boolean isUniqueStream, boolean isVirtualMemHeap)
      Create a temporary row holder with the defined overflow to conglom
      Parameters:
      activation - the activation
      properties - the properties of the original table. Used to help the store use optimal page size, etc.
      resultDescription - the result description. Relevant for the getResultDescription call on the result set returned by getResultSet. May be null
      overflowToConglomThreshold - on an attempt to insert this number of rows, the rows will be put into a temporary conglomerate.
  • Method Details