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 Modifier and Type Class Description 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 Constructor Description QueryPlan()
-