Package com.mckoi.database

## Class QueryPlan

- java.lang.Object
- - com.mckoi.database.QueryPlan

    public class QueryPlan
    extends java.lang.Object

Various helper methods for constructing a plan tree, and the plan node implementations themselves.

Author:
  Tobias Downer

### Nested Class Summary

Nested Classes
`static class` `QueryPlan.BranchQueryPlanNode` A QueryPlanNode that is a branch with two child nodes.
`static class` `QueryPlan.CachePointNode` A cache point node that only evaluates the child if the result can not be found in the cache with the given unique id.
`static class` `QueryPlan.CompositeNode` A branch node for performing a composite function on two child nodes.
`static class` `QueryPlan.ConstantSelectNode` The node for evaluating an expression that contains entirely constant values (no variables).
`static class` `QueryPlan.CreateFunctionsNode` The node for merging the child node with a set of new function columns over the entire result.
`static class` `QueryPlan.DistinctNode` The node for performing a distinct operation on the given columns of the child node.
`static class` `QueryPlan.EquiJoinNode` A branch node for equi-joining two tables together given two sets of columns.
`static class` `QueryPlan.ExhaustiveSelectNode` The node for performing a exhaustive select operation on the child node.
`static class` `QueryPlan.FetchTableNode` The node for fetching a table from the current transaction.
`static class` `QueryPlan.FetchViewNode` The node that fetches a view from the current connection.
`static class` `QueryPlan.FunctionalSelectNode` The node for performing a functional select operation on the child node.
`static class` `QueryPlan.GroupNode` The node for performing a grouping operation on the columns of the child node.
`static class` `QueryPlan.JoinNode` A branch node for a non-equi join between two tables.
`static class` `QueryPlan.LeftOuterJoinNode` A branch node for a left outer join.
`static class` `QueryPlan.LogicalUnionNode` A branch node for a logical union of two tables of identical types.
`static class` `QueryPlan.MarkerNode` A marker node that takes the result of a child and marks it as a name that can later be retrieved.
`static class` `QueryPlan.MultiColumnEquiSelectNode` The node for performing an equi-select on a group of columns of the child node.
`static class` `QueryPlan.NaturalJoinNode` A branch node for naturally joining two tables together.
`static class` `QueryPlan.NonCorrelatedAnyAllNode` A branch node for a non-correlated ANY or ALL sub-query evaluation.
`static class` `QueryPlan.RangeSelectNode` The node for performing a simple indexed query on a single column of the child node.
`static class` `QueryPlan.SimplePatternSelectNode` The node for evaluating a simple pattern search on a table which includes a single left hand variable or constant, a pattern type (LIKE, NOT LIKE or REGEXP), and a right hand constant (eg.
`static class` `QueryPlan.SimpleSelectNode` The node for performing a simple select operation on a table.
`static class` `QueryPlan.SingleQueryPlanNode` A QueryPlanNode with a single child.
`static class` `QueryPlan.SingleRowTableNode` A node for creating a table with a single row.
`static class` `QueryPlan.SortNode` The node for performing a sort operation on the given columns of the child node.
`static class` `QueryPlan.SubsetNode` The node for finding a subset and renaming the columns of the results in the child node.

### Constructor Summary

Constructors
`QueryPlan()`

### Method Summary

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### QueryPlan

    public QueryPlan()