Class IndexRow

java.lang.Object
org.apache.derby.impl.sql.execute.ValueRow
org.apache.derby.impl.sql.execute.IndexRow
All Implemented Interfaces:
ExecIndexRow, ExecRow, Row

class IndexRow extends ValueRow implements ExecIndexRow
Basic implementation of ExecIndexRow.
  • Field Details

    • orderedNulls

      private boolean[] orderedNulls
  • Constructor Details

    • IndexRow

      IndexRow(int ncols)
  • Method Details

    • orderedNulls

      public void orderedNulls(int columnPosition)
      Description copied from interface: ExecIndexRow
      These two methods are a sort of a hack. The store implements ordered null semantics for start and stop positioning, which is correct for IS NULL and incorrect for everything else. To work around this, TableScanResultSet will check whether the start and stop positions have NULL in any column position other than for an IS NULL check. If so, it won't do the scan (that is, it will return no rows). This method is to inform this ExecIndexRow (which can be used for start and stop positioning) that the given column uses ordered null semantics.
      Specified by:
      orderedNulls in interface ExecIndexRow
      Parameters:
      columnPosition - The position of the column that uses ordered null semantics (zero-based).
    • areNullsOrdered

      public boolean areNullsOrdered(int columnPosition)
      Description copied from interface: ExecIndexRow
      Return true if orderedNulls was called on this ExecIndexRow for the given column position.
      Specified by:
      areNullsOrdered in interface ExecIndexRow
      Parameters:
      columnPosition - The position of the column (zero-based) for which we want to check if ordered null semantics are used.
      Returns:
      true if we are to use ordered null semantics on the given column
    • execRowToExecIndexRow

      public void execRowToExecIndexRow(ExecRow valueRow)
      Turn the ExecRow into an ExecIndexRow.
      Specified by:
      execRowToExecIndexRow in interface ExecIndexRow
    • cloneMe

      ExecRow cloneMe()
      Overrides:
      cloneMe in class ValueRow