org.teiid.query.processor.relational
Class JoinNode

java.lang.Object
  extended by org.teiid.query.processor.relational.RelationalNode
      extended by org.teiid.query.processor.relational.SubqueryAwareRelationalNode
          extended by org.teiid.query.processor.relational.JoinNode
All Implemented Interfaces:
java.lang.Cloneable, BatchCollector.BatchProducer

public class JoinNode
extends SubqueryAwareRelationalNode

Since:
4.2

Nested Class Summary
static class JoinNode.JoinStrategyType
           
 
Constructor Summary
JoinNode(int nodeID)
           
 
Method Summary
protected  void addBatchRow(java.util.List row)
           
 java.lang.Object clone()
          All the implementation of Cloneable interface need to implement clone() method.
 void closeDirect()
           
 PlanNode getDescriptionProperties()
           
 Criteria getJoinCriteria()
           
 JoinStrategy getJoinStrategy()
           
 JoinType getJoinType()
           
 java.util.List getLeftExpressions()
           
protected  void getNodeString(java.lang.StringBuffer str)
           
 java.util.List getRightExpressions()
           
 void initialize(CommandContext context, BufferManager bufferManager, ProcessorDataManager dataMgr)
           
 boolean isDependent()
           
 boolean isLeftDistinct()
           
 boolean isRightDistinct()
           
protected  TupleBatch nextBatchDirect()
          Template method for subclasses to implement.
 void open()
           
 void setDependentValueSource(java.lang.String dependentValueSource)
           
 void setJoinCriteria(Criteria joinCriteria)
           
 void setJoinExpressions(java.util.List leftExpressions, java.util.List rightExpressions)
           
 void setJoinStrategy(JoinStrategy joinStrategy)
           
 void setJoinType(JoinType type)
           
 void setLeftDistinct(boolean leftDistinct)
           
 void setRightDistinct(boolean rightDistinct)
           
 
Methods inherited from class org.teiid.query.processor.relational.SubqueryAwareRelationalNode
getEvaluator, reset, setReferenceValues
 
Methods inherited from class org.teiid.query.processor.relational.RelationalNode
addChild, close, copy, createLookupMap, getBatchSize, getBufferManager, getChildren, getClassName, getConnectionID, getContext, getDataManager, getElements, getEstimateNodeCardinality, getID, getNodeStatistics, getOutputElements, getParent, getProjectionIndexes, hasPendingRows, isBatchFull, isClosed, isLastBatch, nextBatch, nodeToString, projectTuple, pullBatch, setContext, setElements, setEstimateDepAccessCardinality, setEstimateDepJoinCost, setEstimateJoinCost, setEstimateNodeCardinality, setEstimateNodeSetSize, setID, setParent, terminateBatches, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JoinNode

public JoinNode(int nodeID)
Method Detail

setJoinType

public void setJoinType(JoinType type)

getJoinStrategy

public JoinStrategy getJoinStrategy()

setJoinStrategy

public void setJoinStrategy(JoinStrategy joinStrategy)

setJoinExpressions

public void setJoinExpressions(java.util.List leftExpressions,
                               java.util.List rightExpressions)

isLeftDistinct

public boolean isLeftDistinct()

setLeftDistinct

public void setLeftDistinct(boolean leftDistinct)

isRightDistinct

public boolean isRightDistinct()

setRightDistinct

public void setRightDistinct(boolean rightDistinct)

setJoinCriteria

public void setJoinCriteria(Criteria joinCriteria)

initialize

public void initialize(CommandContext context,
                       BufferManager bufferManager,
                       ProcessorDataManager dataMgr)
Overrides:
initialize in class RelationalNode

open

public void open()
          throws TeiidComponentException,
                 TeiidProcessingException
Overrides:
open in class RelationalNode
Throws:
TeiidComponentException
TeiidProcessingException

clone

public java.lang.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 class RelationalNode
Since:
4.2
See Also:
RelationalNode.clone()

nextBatchDirect

protected TupleBatch nextBatchDirect()
                              throws BlockedException,
                                     TeiidComponentException,
                                     TeiidProcessingException
Description copied from class: RelationalNode
Template method for subclasses to implement.

Specified by:
nextBatchDirect in class RelationalNode
Returns:
Throws:
BlockedException
TeiidComponentException
TeiidProcessingException - if exception related to user input occured
Since:
4.2
See Also:
RelationalNode.nextBatchDirect()

getDescriptionProperties

public PlanNode getDescriptionProperties()
Overrides:
getDescriptionProperties in class RelationalNode
Since:
4.2
See Also:
RelationalNode.getDescriptionProperties()

getNodeString

protected void getNodeString(java.lang.StringBuffer str)
Overrides:
getNodeString in class RelationalNode
Since:
4.2
See Also:
RelationalNode.getNodeString(java.lang.StringBuffer)

isDependent

public boolean isDependent()
Returns:
Returns the isDependent.

setDependentValueSource

public void setDependentValueSource(java.lang.String dependentValueSource)
Parameters:
isDependent - The isDependent to set.

closeDirect

public void closeDirect()
Overrides:
closeDirect in class SubqueryAwareRelationalNode

getJoinType

public JoinType getJoinType()

getJoinCriteria

public Criteria getJoinCriteria()

getLeftExpressions

public java.util.List getLeftExpressions()

getRightExpressions

public java.util.List getRightExpressions()

addBatchRow

protected void addBatchRow(java.util.List row)
Overrides:
addBatchRow in class RelationalNode


Copyright © 2010. All Rights Reserved.