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).
Modifier and Type | Class | Description |
---|---|---|
static class |
OptimizerPlan.ConglomerateRS |
|
static class |
OptimizerPlan.DeadEnd |
Generic plan for row sources we don't understand
|
static class |
OptimizerPlan.Join |
|
static class |
OptimizerPlan.RowSource<D extends UniqueTupleDescriptor> |
|
static class |
OptimizerPlan.TableFunctionRS |
Constructor | Description |
---|---|
OptimizerPlan() |
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.
|
public static OptimizerPlan.RowSource makeRowSource(UniqueTupleDescriptor utd, DataDictionary dd) throws StandardException
Make a RowSource corresponding to the given tuple descriptor.
StandardException
public abstract void bind(DataDictionary dataDictionary, LanguageConnectionContext lcc, CompilerContext cc) throws StandardException
Bind the conglomerate and table function names in this plan.
dataDictionary
- DataDictionary to bind against.StandardException
public abstract boolean isBound()
Return true if this the schema and RowSource names have been resolved.
public abstract int countLeafNodes()
Count the number of leaf nodes under (and including) this node.
public abstract OptimizerPlan leftmostLeaf()
Get the leftmost leaf node in this plan.
public abstract boolean isLeftPrefixOf(OptimizerPlan that)
Return true if this plan is a (left) leading prefix of the other plan.
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.