org.axiondb.engine.rowiterators
Class NestedLoopJoinedRowIterator

java.lang.Object
  extended byorg.axiondb.engine.rowiterators.BaseRowIterator
      extended byorg.axiondb.engine.rowiterators.BaseJoinedRowIterator
          extended byorg.axiondb.engine.rowiterators.NestedLoopJoinedRowIterator
All Implemented Interfaces:
JoinedRowIterator, RowIterator

public class NestedLoopJoinedRowIterator
extends BaseJoinedRowIterator

A RowIteratorthat iterates over zero or more RowIterators, returning Rows that are the cross product of the Row s returned by the contained iterators. This class implements the nested loop join algorithm and can produce inner join, left outer join, and right outer join of the contained iterators.

Version:
$Revision: 1.3 $ $Date: 2004/08/21 10:30:43 $

Field Summary
protected  boolean _acceptableStatus
           
 
Constructor Summary
NestedLoopJoinedRowIterator()
           
NestedLoopJoinedRowIterator(int joinType)
           
NestedLoopJoinedRowIterator(int joinType, int rightColumnCount)
           
 
Method Summary
 void addRowIterator(RowIterator iterator)
           
 int getInnerTableColumnCount()
           
protected  String getShortName()
           
 void reset()
          Re-initialize this RowIterator to its initial state (positioned just before the first Rowin the list).
 void set(int rowIndex, Row row)
           
 void setInnerTableColumnCount(int innerTableColumnCount)
          Sets the _innerTableColumnCount.
protected  boolean setNextRow()
           
protected  boolean setPreviousRow()
           
 
Methods inherited from class org.axiondb.engine.rowiterators.BaseJoinedRowIterator
acceptable, addIterator, allIteratorsAreEmpty, anyIteratorIsEmpty, clearNextRow, clearPreviousRow, current, currentIndex, first, getIterator, getIteratorCount, hasCurrent, hasNext, hasPrevious, isLeftJoin, isNextRowSet, isPreviousRowSet, isRightJoin, last, next, nextIndex, previous, previousIndex, set, setJoinCondition, setJoinType, setNextRow, setPreviousRow, toString
 
Methods inherited from class org.axiondb.engine.rowiterators.BaseRowIterator
add, isEmpty, peekNext, peekPrevious, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.axiondb.RowIterator
add, isEmpty, peekNext, peekPrevious, remove
 

Field Detail

_acceptableStatus

protected boolean _acceptableStatus
Constructor Detail

NestedLoopJoinedRowIterator

public NestedLoopJoinedRowIterator()

NestedLoopJoinedRowIterator

public NestedLoopJoinedRowIterator(int joinType)

NestedLoopJoinedRowIterator

public NestedLoopJoinedRowIterator(int joinType,
                                   int rightColumnCount)
Method Detail

addRowIterator

public void addRowIterator(RowIterator iterator)
                    throws AxionException
Throws:
AxionException

setNextRow

protected boolean setNextRow()
                      throws AxionException
Specified by:
setNextRow in class BaseJoinedRowIterator
Throws:
AxionException

setPreviousRow

protected boolean setPreviousRow()
                          throws AxionException
Specified by:
setPreviousRow in class BaseJoinedRowIterator
Throws:
AxionException

getShortName

protected String getShortName()
Specified by:
getShortName in class BaseJoinedRowIterator

reset

public void reset()
           throws AxionException
Description copied from interface: RowIterator
Re-initialize this RowIterator to its initial state (positioned just before the first Rowin the list).

Specified by:
reset in interface RowIterator
Overrides:
reset in class BaseJoinedRowIterator
Throws:
AxionException

set

public void set(int rowIndex,
                Row row)
         throws AxionException
Specified by:
set in class BaseJoinedRowIterator
Throws:
AxionException

getInnerTableColumnCount

public int getInnerTableColumnCount()

setInnerTableColumnCount

public void setInnerTableColumnCount(int innerTableColumnCount)
Sets the _innerTableColumnCount.