com.metamatrix.query.processor.relational
Class PlanExecutionNode

java.lang.Object
  extended by com.metamatrix.query.processor.relational.RelationalNode
      extended by com.metamatrix.query.processor.relational.PlanExecutionNode
All Implemented Interfaces:
Describable, java.lang.Cloneable
Direct Known Subclasses:
DependentProcedureExecutionNode

public class PlanExecutionNode
extends RelationalNode


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
PlanExecutionNode(int nodeID)
           
 
Method Summary
 java.lang.Object clone()
          All the implementation of Cloneable interface need to implement clone() method.
 void close()
           
protected  void copy(PlanExecutionNode source, PlanExecutionNode target)
           
 java.util.List getChildPlans()
          Find all ProcessorPlans used by this node.
 java.util.Map getDescriptionProperties()
          Get a description as a set of properties of primitive types such as String, Integer, etc.
protected  void getNodeString(java.lang.StringBuffer str)
           
protected  ProcessorPlan getProcessorPlan()
           
protected  boolean hasNextCommand()
           
 TupleBatch nextBatchDirect()
          Template method for subclasses to implement.
 void open()
           
protected  boolean prepareNextCommand()
           
 void reset()
           
 void setProcessorPlan(ProcessorPlan plan)
           
 
Methods inherited from class com.metamatrix.query.processor.relational.RelationalNode
addBatchRow, addChild, copy, createLookupMap, getBatchSize, getBufferManager, getChildDescriptionProperties, getChildren, getClassName, getConnectionID, getContext, getDataManager, getElements, getEstimateNodeCardinality, getID, getLanguageObjects, getNodeStatistics, getParent, hasPendingRows, initialize, 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

PlanExecutionNode

public PlanExecutionNode(int nodeID)
Method Detail

reset

public void reset()
Overrides:
reset in class RelationalNode

setProcessorPlan

public void setProcessorPlan(ProcessorPlan plan)

open

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

nextBatchDirect

public 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

prepareNextCommand

protected boolean prepareNextCommand()
                              throws BlockedException,
                                     MetaMatrixComponentException,
                                     MetaMatrixProcessingException
Throws:
BlockedException
MetaMatrixComponentException
MetaMatrixProcessingException

hasNextCommand

protected boolean hasNextCommand()

close

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

getNodeString

protected void getNodeString(java.lang.StringBuffer str)
Overrides:
getNodeString in class RelationalNode

getProcessorPlan

protected ProcessorPlan getProcessorPlan()

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

copy

protected void copy(PlanExecutionNode source,
                    PlanExecutionNode target)

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

getChildPlans

public java.util.List getChildPlans()
Description copied from class: RelationalNode
Find all ProcessorPlans used by this node. If no plans are used, null may be returned. The default implementation will return null.

Overrides:
getChildPlans in class RelationalNode
Returns:
List of ProcessorPlan or null if none
Since:
4.2
See Also:
com.metamatrix.query.processor.relational.RelationalNode#getSubPlans()


Copyright © 2009. All Rights Reserved.