Class Correlate

All Implemented Interfaces:
Cloneable, RelOptNode, RelNode
Direct Known Subclasses:
EnumerableCorrelate, LogicalCorrelate

public abstract class Correlate
extends BiRel
A relational operator that performs nested-loop joins.

It behaves like a kind of Join, but works by setting variables in its environment and restarting its right-hand input.

Correlate is not a join since: typical rules should not match Correlate.

A Correlate is used to represent a correlated query. One implementation strategy is to de-correlate the expression.

Mapping of physical operations to logical ones
Physical operationLogical operation
NestedLoopsCorrelate(A, B, regular)
NestedLoopsOuterCorrelate(A, B, outer)
NestedLoopsSemiCorrelate(A, B, semi)
NestedLoopsAntiCorrelate(A, B, anti)
HashJoinEquiJoin(A, B)
HashJoinOuterEquiJoin(A, B, outer)
HashJoinSemiSemiJoin(A, B, semi)
HashJoinAntiSemiJoin(A, B, anti)
See Also:
CorrelationId