Class GenericAggregateResultSet
- java.lang.Object
-
- org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
-
- org.apache.derby.impl.sql.execute.NoPutResultSetImpl
-
- org.apache.derby.impl.sql.execute.GenericAggregateResultSet
-
- All Implemented Interfaces:
NoPutResultSet
,ResultSet
,RowLocationRetRowSource
,RowSource
- Direct Known Subclasses:
GroupedAggregateResultSet
,ScalarAggregateResultSet
abstract class GenericAggregateResultSet extends NoPutResultSetImpl
Generic aggregation utilities.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
BasicNoPutResultSetImpl.FieldComparator
-
-
Field Summary
Fields Modifier and Type Field Description protected AggregatorInfoList
aggInfoList
protected GenericAggregator[]
aggregates
protected NoPutResultSet
originalSource
private ExecIndexRow
rowTemplate
NoPutResultSet
source
-
Fields inherited from class org.apache.derby.impl.sql.execute.NoPutResultSetImpl
checkNullCols, clonedExecRow, cncLen, resultSetNumber, targetResultSet
-
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
-
Fields inherited from interface org.apache.derby.iapi.sql.execute.NoPutResultSet
ABSOLUTE, FIRST, LAST, NEXT, PREVIOUS, RELATIVE, TEMPORARY_RESULT_SET_NUMBER
-
Fields inherited from interface org.apache.derby.iapi.sql.ResultSet
CURRENT_RESULTSET_ONLY, ENTIRE_RESULTSET_TREE, ISAFTERLAST, ISBEFOREFIRST, ISFIRST, ISLAST
-
-
Constructor Summary
Constructors Constructor Description GenericAggregateResultSet(NoPutResultSet s, int aggregateItem, Activation a, int ra, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
finish()
Tells the system that there will be no more access to any database information via this result set; in particular, no more calls to open().protected ExecIndexRow
finishAggregation(ExecIndexRow row)
Finish the aggregation for the current row.(package private) ExecIndexRow
getRowTemplate()
Get a template row of the right shape for sorting or returning results.protected GenericAggregator[]
getSortAggregators(AggregatorInfoList list, boolean eliminateDistincts, LanguageConnectionContext lcc, NoPutResultSet inputResultSet)
For each AggregatorInfo in the list, generate a GenericAggregator and stick it in an array of GenericAggregators.org.w3c.dom.Element
toXML(org.w3c.dom.Element parentNode, java.lang.String tag)
Produce an xml image of this ResultSet and its descendant ResultSets.-
Methods inherited from class org.apache.derby.impl.sql.execute.NoPutResultSetImpl
clearCurrentRow, clearOrderableCache, close, closeRowSource, getCursorName, getNextRowFromRowSource, getResultDescription, getValidColumns, isForUpdate, markRowAsDeleted, needsRowLocation, needsRowLocationForDeferredCheckConstraints, needsToClone, offendingRowLocation, positionScanAtRowLocation, printQualifiers, resultSetNumber, rowLocation, setCurrentRow, setHasDeferrableChecks, setNeedsRowLocation, setTargetResultSet, skipRow, skipScan, unpackHashValue, updateRow
-
Methods inherited from class org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
addWarning, attachStatementContext, checkCancellationFlag, checkRowPosition, childrenToXML, cleanUp, dumpTimeStats, finishAndRTS, getAbsoluteRow, getActivation, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCompactRow, getCurrentTimeMillis, getElapsedMillis, getEndExecutionTimestamp, getEstimatedRowCount, getExecuteTime, getExecutionFactory, getFirstRow, getLanguageConnectionContext, getLastRow, getNextRow, getNextRowCore, getPointOfAttachment, getPreviousRow, getRelativeRow, getRowNumber, getScanIsolationLevel, getSubqueryTrackingArray, getTransactionController, getWarnings, isClosed, isXplainOnlyMode, markAsTopResultSet, modifiedRowCount, open, recordConstructorTime, reopenCore, requiresRelocking, returnsRows, setAfterLastRow, setBeforeFirstRow, setCompactRow, setCompatRow, toXML
-
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.execute.NoPutResultSet
openCore
-
Methods inherited from interface org.apache.derby.iapi.sql.ResultSet
getTimeSpent
-
-
-
-
Field Detail
-
aggregates
protected GenericAggregator[] aggregates
-
aggInfoList
protected AggregatorInfoList aggInfoList
-
source
public NoPutResultSet source
-
originalSource
protected NoPutResultSet originalSource
-
rowTemplate
private final ExecIndexRow rowTemplate
-
-
Constructor Detail
-
GenericAggregateResultSet
GenericAggregateResultSet(NoPutResultSet s, int aggregateItem, Activation a, int ra, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Constructor- Parameters:
a
- activationra
- reference to a saved row allocator instanceresultSetNumber
- result set numberoptimizerEstimatedRowCount
- optimizer estimated row countoptimizerEstimatedCost
- optimizer estimated cost- Throws:
StandardException
- Thrown on error
-
-
Method Detail
-
getRowTemplate
ExecIndexRow getRowTemplate()
Get a template row of the right shape for sorting or returning results. The template is cached, so it may need to be cloned if callers use it for multiple purposes at the same time.- Returns:
- a row template of the right shape for this result set
-
getSortAggregators
protected final GenericAggregator[] getSortAggregators(AggregatorInfoList list, boolean eliminateDistincts, LanguageConnectionContext lcc, NoPutResultSet inputResultSet) throws StandardException
For each AggregatorInfo in the list, generate a GenericAggregator and stick it in an array of GenericAggregators.- Parameters:
list
- the list of aggregators to set upeliminateDistincts
- should distincts be ignored. Used to toss out distinct aggregates for a prelim sort.lcc
- the lccinputResultSet
- the incoming result set- Returns:
- the array of GenericAggregators
- Throws:
StandardException
- on error
-
finishAggregation
protected final ExecIndexRow finishAggregation(ExecIndexRow row) throws StandardException
Finish the aggregation for the current row. Basically call finish() on each aggregator on this row. Called once per grouping on a vector aggregate or once per table on a scalar aggregate. If the input row is null, then rowAllocator is invoked to create a new row. That row is then initialized and used for the output of the aggregation.- Parameters:
row
- the row to finish aggregation- Returns:
- the result row. If the input row != null, then the result row == input row
- Throws:
StandardException
- Thrown on error
-
finish
public void finish() throws StandardException
Description copied from interface:ResultSet
Tells the system that there will be no more access to any database information via this result set; in particular, no more calls to open(). Will close the result set if it is not already closed.- Specified by:
finish
in interfaceResultSet
- Overrides:
finish
in classBasicNoPutResultSetImpl
- Throws:
StandardException
- on error
-
toXML
public org.w3c.dom.Element toXML(org.w3c.dom.Element parentNode, java.lang.String tag) throws java.lang.Exception
Description copied from interface:ResultSet
Produce an xml image of this ResultSet and its descendant ResultSets. Appends an element to the parentNode and returns the appended element.
- Specified by:
toXML
in interfaceResultSet
- Overrides:
toXML
in classBasicNoPutResultSetImpl
- Parameters:
parentNode
- Node to put content into.tag
- Element tag for content- Returns:
- the content as an element with the given tag name
- Throws:
java.lang.Exception
-
-