## Uses of Interface
com.mckoi.database.QueryPlanNode

Packages that use QueryPlanNode
com.mckoi.database: The core database classes for Mckoi.
com.mckoi.database.interpret: These classes interpret specific SQL statements, such as Insert and Delete.

### Uses of QueryPlanNode in com.mckoi.database

Classes in com.mckoi.database that implement QueryPlanNode
`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.

Fields in com.mckoi.database declared as QueryPlanNode
`protected QueryPlanNode` QueryPlan.SingleQueryPlanNode.`child` The single child node.
`protected QueryPlanNode` QueryPlan.BranchQueryPlanNode.`left` The left and right node.
`protected QueryPlanNode` QueryPlan.BranchQueryPlanNode.`right` The left and right node.

Methods in com.mckoi.database that return QueryPlanNode
`QueryPlanNode` QueryPlan.SingleQueryPlanNode.`child()` Returns the child plan.
`QueryPlanNode` DatabaseConnection.`createObjectFetchQueryPlan​(TableName table_name, TableName aliased_name)` Creates a QueryPlanNode to fetch the given table object from this connection.
`QueryPlanNode` QueryPlan.FetchViewNode.`createViewChildNode​(QueryContext context)` Returns the QueryPlanNode that resolves to the view.
`QueryPlanNode` DatabaseQueryContext.`createViewQueryPlanNode​(TableName name)` Creates a QueryPlanNode for the view with the given name.
`QueryPlanNode` ViewManager.`createViewQueryPlanNode​(TableName view_name)` Returns a freshly deserialized QueryPlanNode object for the given view object.
`QueryPlanNode` Expression.`getQueryPlanNode()` Returns the QueryPlanNode object in this expression if it evaluates to a single QueryPlanNode, otherwise returns null.
`QueryPlanNode` TableQueryDef.`getQueryPlanNode()` Returns a QueryPlanNode that can be put into a plan tree and can be evaluated to find the result of the table.
`QueryPlanNode` ViewDef.`getQueryPlanNode()` Returns the QueryPlanNode for this view.
`QueryPlanNode` QueryPlan.BranchQueryPlanNode.`left()` Returns the left node.
`QueryPlanNode` QueryPlan.BranchQueryPlanNode.`right()` Returns the right node.

Constructors in com.mckoi.database with parameters of type QueryPlanNode
`BranchQueryPlanNode​(QueryPlanNode left, QueryPlanNode right)` The Constructor.
`CachePointNode​(QueryPlanNode child)` Constructor.
`CompositeNode​(QueryPlanNode left, QueryPlanNode right, int composite_op, boolean all_op)`
`ConstantSelectNode​(QueryPlanNode child, Expression exp)`
`CreateFunctionsNode​(QueryPlanNode child, Expression[] function_list, java.lang.String[] name_list)` Constructor.
`DistinctNode​(QueryPlanNode child, Variable[] columns)`
`EquiJoinNode​(QueryPlanNode left, QueryPlanNode right, Variable[] left_cols, Variable[] right_cols)`
`ExhaustiveSelectNode​(QueryPlanNode child, Expression exp)`
`FunctionalSelectNode​(QueryPlanNode child, Expression exp)`
`GroupNode​(QueryPlanNode child, Variable[] columns, Variable group_max_column, Expression[] function_list, java.lang.String[] name_list)` Groups over the given columns from the child.
`GroupNode​(QueryPlanNode child, Variable group_max_column, Expression[] function_list, java.lang.String[] name_list)` Groups over the entire child (always ends in 1 result in set).
`JoinNode​(QueryPlanNode left, QueryPlanNode right, Variable left_var, Operator join_op, Expression right_expression)`
`LeftOuterJoinNode​(QueryPlanNode child, java.lang.String complete_mark_name)`
`LogicalUnionNode​(QueryPlanNode left, QueryPlanNode right)`
`MarkerNode​(QueryPlanNode child, java.lang.String mark_name)` Constructor.
`MultiColumnEquiSelectNode​(QueryPlanNode child, Variable[] columns, Expression[] values)`
`NaturalJoinNode​(QueryPlanNode left, QueryPlanNode right)`
`NonCorrelatedAnyAllNode​(QueryPlanNode left, QueryPlanNode right, Variable[] left_vars, Operator subquery_op)`
`RangeSelectNode​(QueryPlanNode child, Expression exp)`
`SimplePatternSelectNode​(QueryPlanNode child, Expression exp)`
`SimpleSelectNode​(QueryPlanNode child, Variable left_var, Operator op, Expression right_expression)`
`SingleQueryPlanNode​(QueryPlanNode child)` Constructor.
`SortNode​(QueryPlanNode child, Variable[] columns, boolean[] ascending)`
`SubsetNode​(QueryPlanNode child, Variable[] original_columns, Variable[] new_column_names)`
`ViewDef​(DataTableDef view_def, QueryPlanNode query_node)` Constructs the ViewDef object.

### Uses of QueryPlanNode in com.mckoi.database.interpret

Methods in com.mckoi.database.interpret that return QueryPlanNode
`QueryPlanNode` FromTableDirectSource.`createFetchQueryPlanNode()` Creates a QueryPlanNode to be added into a query tree that fetches the table source.
`static QueryPlanNode` Planner.`formQueryPlan​(DatabaseConnection db, TableSelectExpression expression, com.mckoi.database.interpret.TableExpressionFromSet from_set, java.util.ArrayList order_by)` Forms a query plan (QueryPlanNode) from the given TableSelectExpression and TableExpressionFromSet.
`static QueryPlanNode` Planner.`planForOrderBy​(QueryPlanNode plan, java.util.ArrayList order_by, com.mckoi.database.interpret.TableExpressionFromSet from_set, java.util.ArrayList s_col_list)` Plans an ORDER BY set.

Methods in com.mckoi.database.interpret with parameters of type QueryPlanNode
`static QueryPlanNode` Planner.`planForOrderBy​(QueryPlanNode plan, java.util.ArrayList order_by, com.mckoi.database.interpret.TableExpressionFromSet from_set, java.util.ArrayList s_col_list)` Plans an ORDER BY set.