org.apache.derby.impl.sql.execute
Class MergeJoinResultSet
java.lang.Object
org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
org.apache.derby.impl.sql.execute.NoPutResultSetImpl
org.apache.derby.impl.sql.execute.JoinResultSet
org.apache.derby.impl.sql.execute.MergeJoinResultSet
- All Implemented Interfaces:
- CursorResultSet, NoPutResultSet, ResultSet, RowLocationRetRowSource, RowSource
class MergeJoinResultSet
- extends JoinResultSet
Merge two result sets. The left result set (the outer
result set) MUST be unique for this to work correctly.
Fields inherited from class org.apache.derby.impl.sql.execute.JoinResultSet |
isRightOpen, leftNumCols, leftResultSet, leftRow, mergedRow, notExistsRightSide, oneRowRightSide, restriction, restrictionTime, rightNumCols, rightResultSet, rightRow, rowsReturned, rowsSeenLeft, rowsSeenRight, userSuppliedOptimizerOverrides |
Fields inherited from class org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl |
activation, beginTime, closeTime, compactRow, constructorTime, currentRow, endExecutionTime, finished, isOpen, isTopResultSet, nextTime, numOpens, openTime, optimizerEstimatedCost, optimizerEstimatedRowCount, resultDescription, rowsFiltered, rowsSeen, startExecutionTime, subqueryTrackingArray |
Constructor Summary |
MergeJoinResultSet(NoPutResultSet leftResultSet,
int leftNumCols,
NoPutResultSet rightResultSet,
int rightNumCols,
Activation activation,
GeneratedMethod leftGreaterThanRight,
GeneratedMethod restriction,
int resultSetNumber,
boolean oneRowRightSide,
boolean notExistsRightSide,
double optimizerEstimatedRowCount,
double optimizerEstimatedCost)
Create a MergeJoinResultSet |
Methods inherited from class org.apache.derby.impl.sql.execute.NoPutResultSetImpl |
clearCurrentRow, clearOrderableCache, closeRowSource, getCursorName, getNextRowFromRowSource, getResultDescription, getValidColumns, isForUpdate, markRowAsDeleted, needsRowLocation, needsToClone, positionScanAtRowLocation, printQualifiers, resultSetNumber, rowLocation, setCurrentRow, setNeedsRowLocation, setTargetResultSet, skipRow, skipScan, updateRow |
Methods inherited from class org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl |
addWarning, attachStatementContext, checkCancellationFlag, checkRowPosition, cleanUp, dumpTimeStats, finishAndRTS, getAbsoluteRow, getActivation, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCompactRow, getCurrentTimeMillis, getElapsedMillis, getEndExecutionTimestamp, getEstimatedRowCount, getExecuteTime, getExecutionFactory, getFirstRow, getLanguageConnectionContext, getLastRow, getNextRow, getPointOfAttachment, getPreviousRow, getRelativeRow, getRowNumber, getScanIsolationLevel, getSubqueryTrackingArray, getTransactionController, getWarnings, isClosed, markAsTopResultSet, modifiedRowCount, open, recordConstructorTime, requiresRelocking, returnsRows, setAfterLastRow, setBeforeFirstRow, setCompactRow, setCompatRow |
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, clearCurrentRow, getAbsoluteRow, getActivation, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCursorName, getEndExecutionTimestamp, getExecuteTime, getFirstRow, getLastRow, getNextRow, getPreviousRow, getRelativeRow, getResultDescription, getRowNumber, getSubqueryTrackingArray, getWarnings, isClosed, modifiedRowCount, open, returnsRows, setAfterLastRow, setBeforeFirstRow |
GREATER_THAN
private static final int GREATER_THAN
- See Also:
- Constant Field Values
EQUAL
private static final int EQUAL
- See Also:
- Constant Field Values
LESS_THAN
private static final int LESS_THAN
- See Also:
- Constant Field Values
leftGreaterThanRight
private GeneratedMethod leftGreaterThanRight
MergeJoinResultSet
MergeJoinResultSet(NoPutResultSet leftResultSet,
int leftNumCols,
NoPutResultSet rightResultSet,
int rightNumCols,
Activation activation,
GeneratedMethod leftGreaterThanRight,
GeneratedMethod restriction,
int resultSetNumber,
boolean oneRowRightSide,
boolean notExistsRightSide,
double optimizerEstimatedRowCount,
double optimizerEstimatedCost)
- Create a MergeJoinResultSet
- Parameters:
leftResultSet
- the left (outer) result setleftNumCols
- columns in left rowrightResultSet
- the right (outer) result setrightNumCols
- columns in right rowactivation
- activationleftGreaterThanRight
- a generated method that is used to
ascertain whether the row from the left result set is
greater than the row from the right result set. returns
1,0,or -1 to indicate greater than, equal, or less than,
respectivelyrestriction
- generated method for additional qualificationresultSetNumber
- the result set numberoneRowRightSide
- ignoredoptimizerEstimatedRowCount
- self-explanatoryoptimizerEstimatedCost
- self-explanatory
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).
getReturnRow
private ExecRow getReturnRow(ExecRow leftRow,
ExecRow rightRow)
throws StandardException
- Throws:
StandardException
restrictionIsTrue
private boolean restrictionIsTrue()
throws StandardException
- Throws:
StandardException
Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.