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

java.lang.Object
  extended byorg.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
      extended byorg.apache.derby.impl.sql.execute.NoPutResultSetImpl
          extended byorg.apache.derby.impl.sql.execute.JoinResultSet
              extended byorg.apache.derby.impl.sql.execute.NestedLoopJoinResultSet
All Implemented Interfaces:
CursorResultSet, NoPutResultSet, ResultSet, RowLocationRetRowSource, RowSource
Direct Known Subclasses:
HashJoinResultSet, NestedLoopLeftOuterJoinResultSet

public class NestedLoopJoinResultSet
extends JoinResultSet

Takes 2 NoPutResultSets and a join filter and returns the join's rows satisfying the filter as a result set.


Field Summary
private  boolean returnedRowMatchingRightSide
           
private  ExecRow rightTemplate
           
 
Fields inherited from class org.apache.derby.impl.sql.execute.JoinResultSet
activation, beginTime, checkGM, checkNullCols, clonedExecRow, closeCleanup, closeTime, cncLen, compactRow, constructorTime, currentRow, endExecutionTime, finished, heapConglomerate, indent, isOpen, isRightOpen, isTopResultSet, lcc, leftNumCols, leftResultSet, leftRow, mergedRow, nextTime, notExistsRightSide, numOpens, oneRowRightSide, openTime, optimizerEstimatedCost, optimizerEstimatedRowCount, restriction, restrictionTime, resultDescription, resultSetNumber, rightNumCols, rightResultSet, rightRow, rowsFiltered, rowsReturned, rowsSeen, rowsSeenLeft, rowsSeenRight, sourceDepth, startExecutionTime, subIndent, subqueryTrackingArray, targetResultSet
 
Fields inherited from interface org.apache.derby.iapi.sql.ResultSet
CURRENT_RESULTSET_ONLY, ENTIRE_RESULTSET_TREE, ISAFTERLAST, ISBEFOREFIRST, ISFIRST, ISLAST
 
Fields inherited from interface org.apache.derby.iapi.sql.execute.NoPutResultSet
ABSOLUTE, FIRST, LAST, NEXT, PREVIOUS, RELATIVE
 
Constructor Summary
NestedLoopJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, Activation activation, GeneratedMethod restriction, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, GeneratedMethod closeCleanup)
           
 
Method Summary
(package private)  void clearScanState()
          Clear any private state that changes during scans.
 void close()
          If the result set has been opened, close the open scan.
 ExecRow getNextRowCore()
          Return the requested values computed from the next row (if any) for which the restriction evaluates to true.
 long getTimeSpent(int type)
          Return the total amount of time spent in this ResultSet
 
Methods inherited from class org.apache.derby.impl.sql.execute.JoinResultSet
addWarning, attachStatementContext, checkRowPosition, cleanUp, clearCurrentRow, clearOrderableCache, closeRight, closeRowSource, dumpTimeStats, finish, finishAndRTS, getAbsoluteRow, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCompactRow, getCurrentRow, getCurrentTimeMillis, getCursorName, getElapsedMillis, getEndExecutionTimestamp, getEstimatedRowCount, getExecuteTime, getExecutionFactory, getFirstRow, getLanguageConnectionContext, getLastRow, getNextRow, getNextRowFromRowSource, getPointOfAttachment, getPreviousRow, getRelativeRow, getResultDescription, getRowLocation, getRowNumber, getScanIsolationLevel, getSubqueryTrackingArray, getTransactionController, getValidColumns, getWarnings, isClosed, isForUpdate, markAsTopResultSet, modifiedRowCount, needsRowLocation, needsToClone, open, openCore, openRight, printQualifiers, reopenCore, requiresRelocking, resultSetNumber, returnsRows, rowLocation, setAfterLastRow, setBeforeFirstRow, setCheckConstraints, setCompactRow, setCompatRow, setCurrentRow, setHeapConglomerate, setNeedsRowLocation, setTargetResultSet, skipRow, skipScan
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.sql.ResultSet
checkRowPosition, cleanUp, getAbsoluteRow, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCursorName, getEndExecutionTimestamp, getExecuteTime, getFirstRow, getLastRow, getNextRow, getPreviousRow, getRelativeRow, getResultDescription, getRowNumber, getSubqueryTrackingArray, getWarnings, isClosed, modifiedRowCount, open, returnsRows, setAfterLastRow, setBeforeFirstRow
 

Field Detail

returnedRowMatchingRightSide

private boolean returnedRowMatchingRightSide

rightTemplate

private ExecRow rightTemplate
Constructor Detail

NestedLoopJoinResultSet

public NestedLoopJoinResultSet(NoPutResultSet leftResultSet,
                               int leftNumCols,
                               NoPutResultSet rightResultSet,
                               int rightNumCols,
                               Activation activation,
                               GeneratedMethod restriction,
                               int resultSetNumber,
                               boolean oneRowRightSide,
                               boolean notExistsRightSide,
                               double optimizerEstimatedRowCount,
                               double optimizerEstimatedCost,
                               GeneratedMethod closeCleanup)
Method Detail

clearScanState

void clearScanState()
Clear any private state that changes during scans. This includes things like the last row seen, etc. THis does not include immutable things that are typically set up in the constructor.

This method is called on open()/close() and reopen()

WARNING: this should be implemented in every sub class and it should always call super.clearScanState().

Overrides:
clearScanState in class JoinResultSet

getNextRowCore

public ExecRow getNextRowCore()
                       throws StandardException
Return the requested values computed from the next row (if any) for which the restriction evaluates to true.

restriction parameters are evaluated for each row.

Specified by:
getNextRowCore in interface NoPutResultSet
Specified by:
getNextRowCore in class BasicNoPutResultSetImpl
Returns:
the next row in the join result
Throws:
StandardException - Thrown on error
StandardException - ResultSetNotOpen thrown if closed
See Also:
NoPutResultSet.getNextRowCore()

close

public void close()
           throws StandardException
If the result set has been opened, close the open scan.

Specified by:
close in interface ResultSet
Overrides:
close in class JoinResultSet
Throws:
StandardException - thrown on error

getTimeSpent

public long getTimeSpent(int type)
Return the total amount of time spent in this ResultSet

Parameters:
type - CURRENT_RESULTSET_ONLY - time spent only in this ResultSet ENTIRE_RESULTSET_TREE - time spent in this ResultSet and below.
Returns:
long The total amount of time spent (in milliseconds).

Built on Tue 2006-10-10 19:23:47+0200, from revision exported

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.