simpledb
Class SeqScan

java.lang.Object
  extended by simpledb.SeqScan
All Implemented Interfaces:
DbIterator

public class SeqScan
extends java.lang.Object
implements DbIterator

SeqScan is an implementation of a sequential scan access method that reads each tuple of a table in no particular order (e.g., as they are laid out on disk).


Constructor Summary
SeqScan(TransactionId tid, int tableid)
           
SeqScan(TransactionId tid, int tableid, java.lang.String tableAlias)
          Creates a sequential scan over the specified table as a part of the specified transaction.
 
Method Summary
 void close()
          Closes the iterator.
 TupleDesc getTupleDesc()
          Returns the TupleDesc with field names from the underlying HeapFile, prefixed with the tableAlias string from the constructor.
 boolean hasNext()
          Returns true if the iterator has more tuples.
 Tuple next()
          Returns the next tuple from the operator (typically implementing by reading from a child operator or an access method).
 void open()
          Opens the iterator.
 void rewind()
          Resets the iterator to the start.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SeqScan

public SeqScan(TransactionId tid,
               int tableid,
               java.lang.String tableAlias)
Creates a sequential scan over the specified table as a part of the specified transaction.

Parameters:
tid - The transaction this scan is running as a part of.
tableid - the table to scan.
tableAlias - the alias of this table (needed by the parser); the returned tupleDesc should have fields with name tableAlias.fieldName (note: this class is not responsible for handling a case where tableAlias or fieldName are null. It shouldn't crash if they are, but the resulting name can be null.fieldName, tableAlias.null, or null.null).

SeqScan

public SeqScan(TransactionId tid,
               int tableid)
Method Detail

open

public void open()
          throws DbException,
                 TransactionAbortedException
Description copied from interface: DbIterator
Opens the iterator. This must be called before any of the other methods.

Specified by:
open in interface DbIterator
Throws:
DbException - when there are problems opening/accessing the database.
TransactionAbortedException

getTupleDesc

public TupleDesc getTupleDesc()
Returns the TupleDesc with field names from the underlying HeapFile, prefixed with the tableAlias string from the constructor. This prefix becomes useful when joining tables containing a field(s) with the same name.

Specified by:
getTupleDesc in interface DbIterator
Returns:
the TupleDesc with field names from the underlying HeapFile, prefixed with the tableAlias string from the constructor.

hasNext

public boolean hasNext()
                throws TransactionAbortedException,
                       DbException
Description copied from interface: DbIterator
Returns true if the iterator has more tuples.

Specified by:
hasNext in interface DbIterator
Returns:
true f the iterator has more tuples.
Throws:
TransactionAbortedException
DbException

next

public Tuple next()
           throws java.util.NoSuchElementException,
                  TransactionAbortedException,
                  DbException
Description copied from interface: DbIterator
Returns the next tuple from the operator (typically implementing by reading from a child operator or an access method).

Specified by:
next in interface DbIterator
Returns:
the next tuple in the iteration.
Throws:
java.util.NoSuchElementException - if there are no more tuples.
TransactionAbortedException
DbException

close

public void close()
Description copied from interface: DbIterator
Closes the iterator. When the iterator is closed, calling next(), hasNext(), or rewind() should fail by throwing IllegalStateException.

Specified by:
close in interface DbIterator

rewind

public void rewind()
            throws DbException,
                   java.util.NoSuchElementException,
                   TransactionAbortedException
Description copied from interface: DbIterator
Resets the iterator to the start.

Specified by:
rewind in interface DbIterator
Throws:
DbException - when rewind is unsupported.
java.util.NoSuchElementException
TransactionAbortedException