com.mckoi.database
Class QueryPlan.GroupNode

java.lang.Object
  extended by com.mckoi.database.QueryPlan.SingleQueryPlanNode
      extended by com.mckoi.database.QueryPlan.GroupNode
All Implemented Interfaces:
QueryPlanNode, java.io.Serializable, java.lang.Cloneable
Enclosing class:
QueryPlan

public static class QueryPlan.GroupNode
extends QueryPlan.SingleQueryPlanNode

The node for performing a grouping operation on the columns of the child node. As well as grouping, any aggregate functions must also be defined with this plan.

NOTE: The whole child is a group if columns is null.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.mckoi.database.QueryPlan.SingleQueryPlanNode
child
 
Constructor Summary
QueryPlan.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.
QueryPlan.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).
 
Method Summary
 java.lang.Object clone()
          Deep clone.
 java.util.ArrayList discoverCorrelatedVariables(int level, java.util.ArrayList list)
          Default implementation that discovers correlated variables for the given offset level.
 java.util.ArrayList discoverTableNames(java.util.ArrayList list)
          Default implementation delegates responsibility to child.
 Table evaluate(QueryContext context)
          Evaluates the node and returns the result as a Table.
 java.lang.String titleString()
           
 
Methods inherited from class com.mckoi.database.QueryPlan.SingleQueryPlanNode
child, debugString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryPlan.GroupNode

public QueryPlan.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.


QueryPlan.GroupNode

public QueryPlan.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).

Method Detail

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


discoverTableNames

public java.util.ArrayList discoverTableNames(java.util.ArrayList list)
Description copied from class: QueryPlan.SingleQueryPlanNode
Default implementation delegates responsibility to child.

Specified by:
discoverTableNames in interface QueryPlanNode
Overrides:
discoverTableNames in class QueryPlan.SingleQueryPlanNode

discoverCorrelatedVariables

public java.util.ArrayList discoverCorrelatedVariables(int level,
                                                       java.util.ArrayList list)
Description copied from class: QueryPlan.SingleQueryPlanNode
Default implementation that discovers correlated variables for the given offset level.

Specified by:
discoverCorrelatedVariables in interface QueryPlanNode
Overrides:
discoverCorrelatedVariables in class QueryPlan.SingleQueryPlanNode

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from class: QueryPlan.SingleQueryPlanNode
Deep clone.

Specified by:
clone in interface QueryPlanNode
Overrides:
clone in class QueryPlan.SingleQueryPlanNode
Throws:
java.lang.CloneNotSupportedException

titleString

public java.lang.String titleString()
Overrides:
titleString in class QueryPlan.SingleQueryPlanNode