Package com.mckoi.database

## Class QueryPlan.EquiJoinNode

- java.lang.Object
- - com.mckoi.database.QueryPlan.BranchQueryPlanNode
  - - 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

Constructors
`EquiJoinNode​(QueryPlanNode left, QueryPlanNode right, Variable[] left_cols, Variable[] right_cols)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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

#### EquiJoinNode

    public 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`