| java.lang.Object org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl org.apache.derby.impl.sql.execute.NoPutResultSetImpl org.apache.derby.impl.sql.execute.JoinResultSet
All known Subclasses: org.apache.derby.impl.sql.execute.NestedLoopJoinResultSet, org.apache.derby.impl.sql.execute.MergeJoinResultSet,
JoinResultSet | abstract class JoinResultSet extends NoPutResultSetImpl implements CursorResultSet(Code) | | Takes 2 NoPutResultSets and a join filter and returns
the join's rows satisfying the filter as a result set.
author: ames |
Constructor Summary | |
| JoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, Activation activation, GeneratedMethod restriction, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, String userSuppliedOptimizerOverrides) |
Method Summary | |
void | clearScanState() Clear any private state that changes during scans. | public void | close() If the result set has been opened,
close the open scan. | protected void | closeRight() | public void | finish() | public ExecRow | getCurrentRow() A join is combining rows from two sources, so it
should never be used in a positioned update or delete. | public RowLocation | getRowLocation() A join is combining rows from two sources, so it has no
single row location to return; just return a null. | public void | openCore() open a scan on the join. | protected void | openRight() open the rightResultSet. | public void | reopenCore() reopen a a join. |
isRightOpen | protected boolean isRightOpen(Code) | | |
leftNumCols | protected int leftNumCols(Code) | | |
notExistsRightSide | public boolean notExistsRightSide(Code) | | |
oneRowRightSide | public boolean oneRowRightSide(Code) | | |
restrictionTime | public long restrictionTime(Code) | | |
rightNumCols | protected int rightNumCols(Code) | | |
rowsReturned | public int rowsReturned(Code) | | |
rowsSeenLeft | public int rowsSeenLeft(Code) | | |
rowsSeenRight | public int rowsSeenRight(Code) | | |
userSuppliedOptimizerOverrides | String userSuppliedOptimizerOverrides(Code) | | |
JoinResultSet | JoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, Activation activation, GeneratedMethod restriction, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, String userSuppliedOptimizerOverrides)(Code) | | |
clearScanState | void clearScanState()(Code) | | 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()
|
close | public void close() throws StandardException(Code) | | If the result set has been opened,
close the open scan.
WARNING does not track close
time, since it is expected to be called
directly by its subclasses, and we don't
want to skew the times
exception: StandardException - thrown on error |
getCurrentRow | public ExecRow getCurrentRow()(Code) | | A join is combining rows from two sources, so it
should never be used in a positioned update or delete.
See Also: CursorResultSet a null value. |
getRowLocation | public RowLocation getRowLocation()(Code) | | A join is combining rows from two sources, so it has no
single row location to return; just return a null.
See Also: CursorResultSet the row location of the current cursor row. |
openCore | public void openCore() throws StandardException(Code) | | open a scan on the join.
For a join, this means:
o Open the left ResultSet
o Do a getNextRow() on the left ResultSet to establish a position
and get "parameter values" for the right ResultSet.
NOTE: It is possible for the getNextRow() to return null, in which
case there is no need to open the RightResultSet. We must remember
this condition.
o If the getNextRow() on the left ResultSet succeeded, then open()
the right ResultSet.
scan parameters are evaluated at each open, so there is probably
some way of altering their values...
exception: StandardException - Thrown on error |
|
|