org.apache.derby.impl.sql.execute
Class IndexRow

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

public class IndexRow
extends ValueRow
implements ExecIndexRow

Basic implementation of ExecIndexRow.


Field Summary
private  boolean[] orderedNulls
           
 
Constructor Summary
IndexRow(int ncols)
           
 
Method Summary
 boolean areNullsOrdered(int columnPosition)
          Return true if orderedNulls was called on this ExecIndexRow for the given column position.
(package private)  ExecRow cloneMe()
           
 void execRowToExecIndexRow(ExecRow valueRow)
          Turn the ExecRow into an ExecIndexRow.
 void orderedNulls(int columnPosition)
          These two methods are a sort of a hack.
 
Methods inherited from class org.apache.derby.impl.sql.execute.ValueRow
cloneColumn, getClone, getClone, getColumn, getNewNullRow, getNewObjectArray, getRowArray, getRowArrayClone, nColumns, realloc, resetRowArray, setColumn, setRowArray, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.sql.execute.ExecRow
cloneColumn, getClone, getClone, getNewNullRow, getNewObjectArray, getRowArray, getRowArrayClone, resetRowArray, setRowArray
 
Methods inherited from interface org.apache.derby.iapi.sql.Row
getColumn, nColumns, setColumn
 

Field Detail

orderedNulls

private boolean[] orderedNulls
Constructor Detail

IndexRow

IndexRow(int ncols)
Method Detail

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

Built on Thu 2012-03-29 21:53:33+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.