relop
Class SimpleJoin

java.lang.Object
  extended by relop.Iterator
      extended by relop.SimpleJoin

public class SimpleJoin
extends Iterator

The simplest of all join algorithms: nested loops (see textbook, 3rd edition, section 14.4.1, page 454).


Constructor Summary
SimpleJoin(Iterator left, Iterator right, Predicate... preds)
          Constructs a join, given the left and right iterators and join predicates (relative to the combined schema).
 
Method Summary
 void close()
          Closes the iterator, releasing any resources (i.e.
 void explain(int depth)
          Gives a one-line explanation of the iterator, repeats the call on any child iterators, and increases the indent depth along the way.
 Tuple getNext()
          Gets the next tuple in the iteration.
 boolean hasNext()
          Returns true if there are more tuples, false otherwise.
 boolean isOpen()
          Returns true if the iterator is open; false otherwise.
 void restart()
          Restarts the iterator, i.e.
 
Methods inherited from class relop.Iterator
execute, getSchema, setSchema
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleJoin

public SimpleJoin(Iterator left,
                  Iterator right,
                  Predicate... preds)
Constructs a join, given the left and right iterators and join predicates (relative to the combined schema).

Method Detail

explain

public void explain(int depth)
Gives a one-line explanation of the iterator, repeats the call on any child iterators, and increases the indent depth along the way.

Specified by:
explain in class Iterator

restart

public void restart()
Restarts the iterator, i.e. as if it were just constructed.

Specified by:
restart in class Iterator

isOpen

public boolean isOpen()
Returns true if the iterator is open; false otherwise.

Specified by:
isOpen in class Iterator

close

public void close()
Closes the iterator, releasing any resources (i.e. pinned pages).

Specified by:
close in class Iterator

hasNext

public boolean hasNext()
Returns true if there are more tuples, false otherwise.

Specified by:
hasNext in class Iterator

getNext

public Tuple getNext()
Gets the next tuple in the iteration.

Specified by:
getNext in class Iterator
Throws:
java.lang.IllegalStateException - if no more tuples