com.mckoi.database
Class QueryPlan.EquiJoinNode

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

public static class QueryPlan.EquiJoinNode
extends QueryPlan.BranchQueryPlanNode

A branch node for equi-joining two tables together given two sets of columns. This is a seperate node from a general join operation to allow for optimizations with multi-column indexes.

An equi-join is the most common type of join.

At query runtime, this decides the best best way to perform the join, either by

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.mckoi.database.QueryPlan.BranchQueryPlanNode
left, right
 
Constructor Summary
QueryPlan.EquiJoinNode(QueryPlanNode left, QueryPlanNode right, Variable[] left_cols, Variable[] right_cols)
           
 
Method Summary
 java.lang.Object clone()
          Deep clone.
 Table evaluate(QueryContext context)
          Evaluates the node and returns the result as a Table.
 
Methods inherited from class com.mckoi.database.QueryPlan.BranchQueryPlanNode
debugString, discoverCorrelatedVariables, discoverTableNames, left, right, titleString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryPlan.EquiJoinNode

public QueryPlan.EquiJoinNode(QueryPlanNode left,
                              QueryPlanNode right,
                              Variable[] left_cols,
                              Variable[] right_cols)
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


clone

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

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