com.mckoi.database
Class QueryPlan

java.lang.Object
  extended by 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
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
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()