com.metamatrix.query.processor.relational
Class JoinNode

java.lang.Object
  extended by com.metamatrix.query.processor.relational.RelationalNode
      extended by com.metamatrix.query.processor.relational.SubqueryAwareRelationalNode
          extended by com.metamatrix.query.processor.relational.JoinNode
All Implemented Interfaces:
Describable, java.lang.Cloneable

public class JoinNode
extends SubqueryAwareRelationalNode

Since:
4.2

Nested Class Summary
static class JoinNode.JoinStrategyType
           
 
Field Summary
 
Fields inherited from interface com.metamatrix.query.processor.Describable
PROP_BINDINGS, PROP_CHILDREN, PROP_CONDITIONS, PROP_CRITERIA, PROP_DATA_COL, PROP_DEFAULT, PROP_DEFAULT_PROGRAM, PROP_ELSE, PROP_ENCODING, PROP_EXECUTION_PLAN, PROP_EXPRESSION, PROP_FORMATTED, PROP_GROUP, PROP_GROUP_COLS, PROP_IN_MEMORY, PROP_INTO_GROUP, PROP_IS_STAGING, PROP_JOIN_CRITERIA, PROP_JOIN_STRATEGY, PROP_JOIN_TYPE, PROP_MESSAGE, PROP_MODEL_NAME, PROP_NAMESPACE, PROP_NAMESPACE_DECL, PROP_NODE_COST_ESTIMATES, PROP_NODE_STATS_LIST, PROP_NODE_STATS_PROPS, PROP_OPTIONAL, PROP_OUTPUT_COLS, PROP_PROGRAM, PROP_PROGRAMS, PROP_RECURSE_DIR, PROP_REMOVE_DUPS, PROP_RESULT_SET, PROP_ROW_LIMIT, PROP_ROW_OFFSET, PROP_SELECT_COLS, PROP_SORT_COLS, PROP_SQL, PROP_TAG, PROP_THEN, PROP_TYPE, PROP_VARIABLE
 
Constructor Summary
JoinNode(int nodeID)
           
 
Method Summary
 java.lang.Object clone()
          All the implementation of Cloneable interface need to implement clone() method.
 void close()
           
 java.util.Map getDescriptionProperties()
          Get a description as a set of properties of primitive types such as String, Integer, etc.
 Criteria getJoinCriteria()
           
 JoinStrategy getJoinStrategy()
           
 JoinType getJoinType()
           
 java.util.Collection<? extends LanguageObject> getLanguageObjects()
           
 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 reset()
           
 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 com.metamatrix.query.processor.relational.SubqueryAwareRelationalNode
getEvaluator
 
Methods inherited from class com.metamatrix.query.processor.relational.RelationalNode
addBatchRow, addChild, copy, createLookupMap, getBatchSize, getBufferManager, getChildDescriptionProperties, getChildPlans, getChildren, getClassName, getConnectionID, getContext, getDataManager, getElements, getEstimateNodeCardinality, getID, getNodeStatistics, getParent, hasPendingRows, isBatchFull, isClosed, 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)

reset

public void reset()
Overrides:
reset in class SubqueryAwareRelationalNode
See Also:
RelationalNode.reset()

initialize

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

open

public void open()
          throws MetaMatrixComponentException,
                 MetaMatrixProcessingException
Overrides:
open in class RelationalNode
Throws:
MetaMatrixComponentException
MetaMatrixProcessingException

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,
                                     MetaMatrixComponentException,
                                     MetaMatrixProcessingException
Description copied from class: RelationalNode
Template method for subclasses to implement.

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

getDescriptionProperties

public java.util.Map getDescriptionProperties()
Description copied from interface: Describable
Get a description as a set of properties of primitive types such as String, Integer, etc.

Specified by:
getDescriptionProperties in interface Describable
Overrides:
getDescriptionProperties in class RelationalNode
Returns:
Map of properties
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.

close

public void close()
           throws MetaMatrixComponentException
Overrides:
close in class SubqueryAwareRelationalNode
Throws:
MetaMatrixComponentException

getJoinType

public JoinType getJoinType()

getJoinCriteria

public Criteria getJoinCriteria()

getLeftExpressions

public java.util.List getLeftExpressions()

getRightExpressions

public java.util.List getRightExpressions()

getLanguageObjects

public java.util.Collection<? extends LanguageObject> getLanguageObjects()
Overrides:
getLanguageObjects in class RelationalNode


Copyright © 2009. All Rights Reserved.