Class GroupingNode
- java.lang.Object
-
- org.teiid.query.processor.relational.RelationalNode
-
- org.teiid.query.processor.relational.SubqueryAwareRelationalNode
-
- org.teiid.query.processor.relational.GroupingNode
-
- All Implemented Interfaces:
Cloneable
,BatchCollector.BatchProducer
public class GroupingNode extends SubqueryAwareRelationalNode
-
-
Field Summary
-
Fields inherited from class org.teiid.query.processor.relational.RelationalNode
childCount
-
-
Constructor Summary
Constructors Constructor Description GroupingNode(int nodeID)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
clone()
All the implementation of Cloneable interface need to implement clone() method.void
closeDirect()
protected void
closeGroup(int colDiff, boolean reset, CommandContext context)
PlanNode
getDescriptionProperties()
TupleSource
getGroupSortTupleSource()
protected void
getNodeString(StringBuffer str)
Collection<? extends LanguageObject>
getObjects()
void
initialize(CommandContext context, BufferManager bufferManager, ProcessorDataManager dataMgr)
TupleBatch
nextBatchDirect()
Template method for subclasses to implement.void
reset()
static int
sameGroup(int[] indexes, List<?> newTuple, List<?> oldTuple)
void
setOrderBy(List<OrderByItem> orderBy)
void
setOutputMapping(SymbolMap outputMapping)
void
setRemoveDuplicates(boolean removeDuplicates)
void
setRollup(boolean rollup)
-
Methods inherited from class org.teiid.query.processor.relational.SubqueryAwareRelationalNode
getEvaluator, requiresTransaction, requiresTransaction, setReferenceValues
-
Methods inherited from class org.teiid.query.processor.relational.RelationalNode
addBatchRow, addChild, close, copyTo, createLookupMap, getBatchSize, getBuffer, getBufferDirect, getBufferManager, getChildCount, getChildren, getClassName, getConnectionID, getContext, getDataManager, getElements, getEstimateNodeCardinality, getID, getNodeStatistics, getOutputElements, getParent, getProjectionIndexes, hasBuffer, hasPendingRows, isBatchFull, isClosed, isLastBatch, nextBatch, nodeToString, open, projectTuple, projectTuple, pullBatch, setContext, setElements, setEstimateDepAccessCardinality, setEstimateDepJoinCost, setEstimateJoinCost, setEstimateNodeCardinality, setEstimateNodeSetSize, setID, setParent, terminateBatches, toString, unwrapException
-
-
-
-
Method Detail
-
reset
public void reset()
- Overrides:
reset
in classSubqueryAwareRelationalNode
-
setRemoveDuplicates
public void setRemoveDuplicates(boolean removeDuplicates)
-
setOrderBy
public void setOrderBy(List<OrderByItem> orderBy)
-
setOutputMapping
public void setOutputMapping(SymbolMap outputMapping)
-
initialize
public void initialize(CommandContext context, BufferManager bufferManager, ProcessorDataManager dataMgr)
- Overrides:
initialize
in classRelationalNode
-
nextBatchDirect
public TupleBatch nextBatchDirect() throws BlockedException, TeiidComponentException, TeiidProcessingException
Description copied from class:RelationalNode
Template method for subclasses to implement.- Specified by:
nextBatchDirect
in classRelationalNode
- Returns:
- Throws:
BlockedException
TeiidComponentException
TeiidProcessingException
- if exception related to user input occured
-
getGroupSortTupleSource
public TupleSource getGroupSortTupleSource()
-
getObjects
public Collection<? extends LanguageObject> getObjects()
- Specified by:
getObjects
in classSubqueryAwareRelationalNode
-
closeGroup
protected void closeGroup(int colDiff, boolean reset, CommandContext context) throws FunctionExecutionException, ExpressionEvaluationException, TeiidComponentException, TeiidProcessingException
-
closeDirect
public void closeDirect()
- Overrides:
closeDirect
in classSubqueryAwareRelationalNode
-
getNodeString
protected void getNodeString(StringBuffer str)
- Overrides:
getNodeString
in classRelationalNode
-
clone
public Object clone()
Description copied from class:RelationalNode
All the implementation of Cloneable interface need to implement clone() method. The plan is only clonable in the pre-execution stage, not the execution state (things like program state, result sets, etc). It's only safe to call that method in between query processings, in other words, it's only safe to call clone() on a plan after nextTuple() returns null, meaning the plan has finished processing.- Specified by:
clone
in classRelationalNode
-
getDescriptionProperties
public PlanNode getDescriptionProperties()
- Overrides:
getDescriptionProperties
in classRelationalNode
-
setRollup
public void setRollup(boolean rollup)
-
-