Class OptimizerPlan
- java.lang.Object
-
- org.apache.derby.iapi.sql.compile.OptimizerPlan
-
- Direct Known Subclasses:
OptimizerPlan.DeadEnd
,OptimizerPlan.Join
,OptimizerPlan.RowSource
public abstract class OptimizerPlan extends java.lang.Object
High level description of a plan for consideration by the Optimizer. This is used to specify a complete plan via optimizer overrides. A plan is a tree whose interior nodes are join operators and whose leaves are row sources (conglomerates or tableFunctions).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
OptimizerPlan.ConglomerateRS
static class
OptimizerPlan.DeadEnd
Generic plan for row sources we don't understandstatic class
OptimizerPlan.Join
static class
OptimizerPlan.RowSource<D extends UniqueTupleDescriptor>
static class
OptimizerPlan.TableFunctionRS
-
Constructor Summary
Constructors Constructor Description OptimizerPlan()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
bind(DataDictionary dataDictionary, LanguageConnectionContext lcc, CompilerContext cc)
Bind the conglomerate and table function names in this plan.abstract int
countLeafNodes()
Count the number of leaf nodes under (and including) this node.abstract boolean
isBound()
Return true if this the schema and RowSource names have been resolved.abstract boolean
isLeftPrefixOf(OptimizerPlan that)
Return true if this plan is a (left) leading prefix of the other plan.abstract OptimizerPlan
leftmostLeaf()
Get the leftmost leaf node in this plan.static OptimizerPlan.RowSource
makeRowSource(UniqueTupleDescriptor utd, DataDictionary dd)
Make a RowSource corresponding to the given tuple descriptor.
-
-
-
Method Detail
-
makeRowSource
public static OptimizerPlan.RowSource makeRowSource(UniqueTupleDescriptor utd, DataDictionary dd) throws StandardException
Make a RowSource corresponding to the given tuple descriptor.
- Throws:
StandardException
-
bind
public abstract void bind(DataDictionary dataDictionary, LanguageConnectionContext lcc, CompilerContext cc) throws StandardException
Bind the conglomerate and table function names in this plan.
- Parameters:
dataDictionary
- DataDictionary to bind against.- Throws:
StandardException
-
isBound
public abstract boolean isBound()
Return true if this the schema and RowSource names have been resolved.
-
countLeafNodes
public abstract int countLeafNodes()
Count the number of leaf nodes under (and including) this node.
-
leftmostLeaf
public abstract OptimizerPlan leftmostLeaf()
Get the leftmost leaf node in this plan.
-
isLeftPrefixOf
public abstract boolean isLeftPrefixOf(OptimizerPlan that)
Return true if this plan is a (left) leading prefix of the other plan.
-
-