Class ProjectNode
- java.lang.Object
-
- org.teiid.query.processor.relational.RelationalNode
-
- org.teiid.query.processor.relational.SubqueryAwareRelationalNode
-
- org.teiid.query.processor.relational.ProjectNode
-
- All Implemented Interfaces:
Cloneable
,BatchCollector.BatchProducer
public class ProjectNode extends SubqueryAwareRelationalNode
-
-
Field Summary
-
Fields inherited from class org.teiid.query.processor.relational.RelationalNode
childCount
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ProjectNode()
ProjectNode(int nodeID)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChild(RelationalNode child)
Object
clone()
All the implementation of Cloneable interface need to implement clone() method.protected void
copyTo(ProjectNode target)
TupleBuffer
getBufferDirect(int maxRows)
For subclasses to override if they wish to return a buffer rather than batches.PlanNode
getDescriptionProperties()
protected void
getNodeString(StringBuffer str)
Collection<? extends LanguageObject>
getObjects()
List<? extends Expression>
getSelectSymbols()
return List of select symbolsboolean
hasBuffer()
Return true if the node provides a final buffer via getBufferTupleBatch
nextBatchDirect()
Template method for subclasses to implement.void
reset()
void
setSelectSymbols(List<? extends Expression> symbols)
-
Methods inherited from class org.teiid.query.processor.relational.SubqueryAwareRelationalNode
closeDirect, getEvaluator, requiresTransaction, requiresTransaction, setReferenceValues
-
Methods inherited from class org.teiid.query.processor.relational.RelationalNode
addBatchRow, close, copyTo, createLookupMap, getBatchSize, getBuffer, getBufferManager, getChildCount, getChildren, getClassName, getConnectionID, getContext, getDataManager, getElements, getEstimateNodeCardinality, getID, getNodeStatistics, getOutputElements, getParent, getProjectionIndexes, hasPendingRows, initialize, 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
-
getSelectSymbols
public List<? extends Expression> getSelectSymbols()
return List of select symbols- Returns:
- List of select symbols
-
setSelectSymbols
public void setSelectSymbols(List<? extends Expression> symbols)
-
addChild
public void addChild(RelationalNode child)
- Overrides:
addChild
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
-
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
-
copyTo
protected void copyTo(ProjectNode target)
-
getDescriptionProperties
public PlanNode getDescriptionProperties()
- Overrides:
getDescriptionProperties
in classRelationalNode
-
getObjects
public Collection<? extends LanguageObject> getObjects()
- Specified by:
getObjects
in classSubqueryAwareRelationalNode
-
hasBuffer
public boolean hasBuffer()
Description copied from class:RelationalNode
Return true if the node provides a final buffer via getBuffer- Specified by:
hasBuffer
in interfaceBatchCollector.BatchProducer
- Overrides:
hasBuffer
in classRelationalNode
-
getBufferDirect
public TupleBuffer getBufferDirect(int maxRows) throws BlockedException, TeiidComponentException, TeiidProcessingException
Description copied from class:RelationalNode
For subclasses to override if they wish to return a buffer rather than batches.- Overrides:
getBufferDirect
in classRelationalNode
- Returns:
- Throws:
BlockedException
TeiidComponentException
TeiidProcessingException
-
-