Package com.mckoi.database
Class QueryPlan.FetchViewNode
- java.lang.Object
-
- com.mckoi.database.QueryPlan.FetchViewNode
-
- All Implemented Interfaces:
QueryPlanNode
,java.io.Serializable
,java.lang.Cloneable
- Enclosing class:
- QueryPlan
public static class QueryPlan.FetchViewNode extends java.lang.Object implements QueryPlanNode
The node that fetches a view from the current connection. This is a tree node that has no children, however the child can be created by calling the 'createViewChildNode' method. This node can be removed from a plan tree by calling the 'createViewChildNode' method and substituting this node with the returned child. For a planner that normalizes and optimizes plan trees, this is a useful feature.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description FetchViewNode(TableName table_name, TableName aliased_as)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
Deep clones this query plan.QueryPlanNode
createViewChildNode(QueryContext context)
Returns the QueryPlanNode that resolves to the view.void
debugString(int level, java.lang.StringBuffer buf)
Writes a textural representation of the node to the StringBuffer at the given indent level.java.util.ArrayList
discoverCorrelatedVariables(int level, java.util.ArrayList list)
Discovers all the correlated variables in the plan (and plan children) that reference a particular layer.java.util.ArrayList
discoverTableNames(java.util.ArrayList list)
Adds the table name to the list if it's not already in there.Table
evaluate(QueryContext context)
Evaluates the node and returns the result as a Table.java.lang.String
titleString()
-
-
-
Method Detail
-
createViewChildNode
public QueryPlanNode createViewChildNode(QueryContext context)
Returns the QueryPlanNode that resolves to the view. This looks up the query plan in the context given.
-
discoverTableNames
public java.util.ArrayList discoverTableNames(java.util.ArrayList list)
Adds the table name to the list if it's not already in there.- Specified by:
discoverTableNames
in interfaceQueryPlanNode
-
evaluate
public Table evaluate(QueryContext context)
Description copied from interface:QueryPlanNode
Evaluates the node and returns the result as a Table. The VariableResolver resolves any outer variables- Specified by:
evaluate
in interfaceQueryPlanNode
-
discoverCorrelatedVariables
public java.util.ArrayList discoverCorrelatedVariables(int level, java.util.ArrayList list)
Description copied from interface:QueryPlanNode
Discovers all the correlated variables in the plan (and plan children) that reference a particular layer. For example, if we wanted to find all the CorrelatedVariable objects that reference the current layer, we would typically call 'discoverCorrelatedVariables(0, new ArrayList())'- Specified by:
discoverCorrelatedVariables
in interfaceQueryPlanNode
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Description copied from interface:QueryPlanNode
Deep clones this query plan.- Specified by:
clone
in interfaceQueryPlanNode
- Overrides:
clone
in classjava.lang.Object
- Throws:
java.lang.CloneNotSupportedException
-
titleString
public java.lang.String titleString()
-
debugString
public void debugString(int level, java.lang.StringBuffer buf)
Description copied from interface:QueryPlanNode
Writes a textural representation of the node to the StringBuffer at the given indent level.- Specified by:
debugString
in interfaceQueryPlanNode
-
-