com.metamatrix.query.processor.relational
Class DependentAccessNode

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

public class DependentAccessNode
extends AccessNode

Takes a query with 1 or more dependent sets from 1 or more sources and creates a series of commands. Dependent sets from the same source are treated as a special case. If there are multiple batches from that source, we will create replacement criteria in lock step - rather than forming the full cartesian product space. This implementation assumes that ordering will be respected above the access node and that the incoming dependent tuple values are already sorted.


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
DependentAccessNode(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.
 int getMaxSetSize()
           
protected  boolean hasNextCommand()
           
protected  boolean prepareNextCommand(Command atomicCommand)
           
 void reset()
           
 void setMaxSetSize(int maxSize)
           
 
Methods inherited from class com.metamatrix.query.processor.relational.AccessNode
copy, getCommand, getConnectorBindingId, getModelName, getNodeString, nextBatchDirect, open, setCommand, setConnectorBindingId, setModelName, setShouldEvaluateExpressions
 
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, initialize, isBatchFull, isClosed, nextBatch, nodeToString, projectTuple, pullBatch, 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

DependentAccessNode

public DependentAccessNode(int nodeID)
Method Detail

close

public void close()
           throws MetaMatrixComponentException
Overrides:
close in class AccessNode
Throws:
MetaMatrixComponentException
See Also:
AccessNode.close()

reset

public void reset()
Overrides:
reset in class AccessNode

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.

Overrides:
clone in class AccessNode

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 AccessNode
Returns:
Map of properties

getMaxSetSize

public int getMaxSetSize()
Returns:
Returns the maxSize.

setMaxSetSize

public void setMaxSetSize(int maxSize)
Parameters:
maxSize - The maxSize to set.

prepareNextCommand

protected boolean prepareNextCommand(Command atomicCommand)
                              throws MetaMatrixComponentException,
                                     MetaMatrixProcessingException
Overrides:
prepareNextCommand in class AccessNode
Throws:
MetaMatrixComponentException
MetaMatrixProcessingException
See Also:
AccessNode.prepareNextCommand(com.metamatrix.query.sql.lang.Command)

hasNextCommand

protected boolean hasNextCommand()
Overrides:
hasNextCommand in class AccessNode
See Also:
AccessNode.hasNextCommand()


Copyright © 2009. All Rights Reserved.