xxl.relational
Class NestedLoopsDistinct

java.lang.Object
  |
  +--xxl.relational.AbstractResultSet
        |
        +--xxl.relational.Distinct
              |
              +--xxl.relational.NestedLoopsDistinct

public class NestedLoopsDistinct
extends Distinct

Nested-loops implementation of the operator "Distinct".

Example:


	new NestedLoopsDistinct(bag, 1024, inputResultSet);
//bag: the Bag used to store additional elements
//1024: the maximum number of Tuples
	
This distinct-operator handles only 1024 tuples in main memory at one time. Additional tuples will be stored in the given bag.

bag.cursor must support remove(). //TODO


Field Summary
protected  java.util.Set outerBag
           
protected  int outerBagSize
           
protected  BufferedResultSet r
           
protected  Tuple t
           
protected  boolean wasNull
           
 
Fields inherited from class xxl.relational.Distinct
resultSet
 
Constructor Summary
NestedLoopsDistinct(Bag innerBag, int outerBagSize, java.sql.ResultSet resultSet)
           
NestedLoopsDistinct(java.sql.ResultSet resultSet)
           
 
Method Summary
 void close()
           
 byte[] getBytes(int columnIndex)
           
 java.lang.Object getObject(int columnIndex)
           
 boolean next()
           
 boolean wasNull()
           
 
Methods inherited from class xxl.relational.Distinct
findColumn, getMetaData
 
Methods inherited from class xxl.relational.AbstractResultSet
absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, deleteRow, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getColumnCount, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getInt, getInt, getLong, getLong, getObject, getObject, getObject, getRef, getRef, getRow, getShort, getShort, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getWarnings, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

r

protected BufferedResultSet r

outerBag

protected java.util.Set outerBag

outerBagSize

protected int outerBagSize

t

protected Tuple t

wasNull

protected boolean wasNull
Constructor Detail

NestedLoopsDistinct

public NestedLoopsDistinct(Bag innerBag,
                           int outerBagSize,
                           java.sql.ResultSet resultSet)

NestedLoopsDistinct

public NestedLoopsDistinct(java.sql.ResultSet resultSet)
Method Detail

next

public boolean next()
             throws java.sql.SQLException
Overrides:
next in class Distinct

getObject

public java.lang.Object getObject(int columnIndex)
                           throws java.sql.SQLException
Overrides:
getObject in class Distinct

getBytes

public byte[] getBytes(int columnIndex)
                throws java.sql.SQLException
Overrides:
getBytes in class Distinct

wasNull

public boolean wasNull()
                throws java.sql.SQLException
Overrides:
wasNull in class Distinct

close

public void close()
           throws java.sql.SQLException
Overrides:
close in class Distinct