org.apache.derby.impl.sql.execute
Class DistinctScalarAggregateResultSet
java.lang.Object
org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
org.apache.derby.impl.sql.execute.NoPutResultSetImpl
org.apache.derby.impl.sql.execute.GenericAggregateResultSet
org.apache.derby.impl.sql.execute.ScalarAggregateResultSet
org.apache.derby.impl.sql.execute.DistinctScalarAggregateResultSet
- All Implemented Interfaces:
- CursorResultSet, NoPutResultSet, ResultSet, RowLocationRetRowSource, RowSource
class DistinctScalarAggregateResultSet
- extends ScalarAggregateResultSet
This ResultSet evaluates scalar aggregates where
1 (or more, in the future) of the aggregates are distinct.
It will scan the entire source result set and calculate
the scalar aggregates when scanning the source during the
first call to next().
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 |
DistinctScalarAggregateResultSet(NoPutResultSet s,
boolean isInSortedOrder,
int aggregateItem,
int orderingItem,
Activation a,
GeneratedMethod ra,
int maxRowSize,
int resultSetNumber,
boolean singleInputRow,
double optimizerEstimatedRowCount,
double optimizerEstimatedCost)
Constructor |
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, finish, getAbsoluteRow, getActivation, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCursorName, getEndExecutionTimestamp, getExecuteTime, getFirstRow, getLastRow, getNextRow, getPreviousRow, getRelativeRow, getResultDescription, getRowNumber, getSubqueryTrackingArray, getWarnings, isClosed, modifiedRowCount, open, returnsRows, setAfterLastRow, setBeforeFirstRow |
order
private ColumnOrdering[] order
maxRowSize
private int maxRowSize
dropDistinctAggSort
private boolean dropDistinctAggSort
sortId
private long sortId
scanController
private ScanController scanController
sortResultRow
private ExecIndexRow sortResultRow
sorted
private boolean sorted
DistinctScalarAggregateResultSet
DistinctScalarAggregateResultSet(NoPutResultSet s,
boolean isInSortedOrder,
int aggregateItem,
int orderingItem,
Activation a,
GeneratedMethod ra,
int maxRowSize,
int resultSetNumber,
boolean singleInputRow,
double optimizerEstimatedRowCount,
double optimizerEstimatedCost)
throws StandardException
- Constructor
- Parameters:
s
- input result setisInSortedOrder
- true if the source results are in sorted orderaggregateItem
- indicates the number of the
SavedObject off of the PreparedStatement that holds the
AggregatorInfoList used by this routine.a
- activationra
- generated method to build an empty
output rowresultSetNumber
- The resultSetNumber for this result set
- Throws:
StandardException
- Thrown on error
openCore
public void openCore()
throws StandardException
- Open the scan. Load the sorter and prepare to get
rows from it.
- Specified by:
openCore
in interface NoPutResultSet
- Overrides:
openCore
in class ScalarAggregateResultSet
- Throws:
StandardException
- thrown if cursor finished.
getNextRowCore
public ExecRow getNextRowCore()
throws StandardException
- Return the next row. If it is a scalar aggregate scan
- Specified by:
getNextRowCore
in interface NoPutResultSet
- Overrides:
getNextRowCore
in class ScalarAggregateResultSet
- Returns:
- the next row in the result
- Throws:
StandardException
- thrown on failure.
StandardException
- ResultSetNotOpen thrown if not yet open.- See Also:
NoPutResultSet.getNextRowCore()
reopenCore
public void reopenCore()
throws StandardException
- reopen a scan on the table. scan parameters are evaluated
at each open, so there is probably some way of altering
their values...
- Specified by:
reopenCore
in interface NoPutResultSet
- Overrides:
reopenCore
in class ScalarAggregateResultSet
- Throws:
StandardException
- thrown if cursor finished.- See Also:
NoPutResultSet.openCore()
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 ScalarAggregateResultSet
- Throws:
StandardException
- thrown on error
getRowFromResultSet
public ExecIndexRow getRowFromResultSet(boolean doClone)
throws StandardException
- Get a row from the sorter. Side effects:
sets currentRow.
- Overrides:
getRowFromResultSet
in class ScalarAggregateResultSet
- Parameters:
doClone
- - true of the row should be cloned
- Throws:
StandardException
- Thrown on error
closeSource
protected void closeSource()
throws StandardException
- Close the source of whatever we have been scanning.
- Throws:
StandardException
- thrown on error
loadSorter
private ScanController loadSorter()
throws StandardException
- Load up the sorter. Feed it every row from the
source scan. If we have a vector aggregate, initialize
the aggregator for each source row. When done, close
the source scan and open the sort. Return the sort
scan controller.
- Returns:
- the sort controller
- Throws:
StandardException
- thrown on failure.
Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.