Class EquiJoin

All Implemented Interfaces:
Cloneable, RelOptNode, Hintable, RelNode
Direct Known Subclasses:

public abstract class EquiJoin
extends Join
This class is no longer needed; if you are writing a sub-class of Join that only accepts equi conditions, it is sufficient that it extends Join. It will be evident that it is an equi-join when its JoinInfo.nonEquiConditions is an empty list.
Base class for any join whose condition is based on column equality.

For most of the cases, JoinInfo.isEqui() can already decide if the join condition is based on column equality.

EquiJoin is an abstract class for inheritance of Calcite enumerable joins and join implementation of other system. You should inherit the EquiJoin if your join implementation does not support non-equi join conditions. Calcite would eliminate some optimize logic for EquiJoin in some planning rules. e.g. FilterJoinRule would not push non-equi join conditions of the above filter into the join underneath if it is an EquiJoin.