public abstract class JoinInfo extends Object
It is useful for the many algorithms that care whether a join is an equi-join.
You can create one using of(org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode, org.apache.calcite.rex.RexNode), or call
Join.analyzeCondition(); many kinds of join cache their
join info, especially those that are equi-joins and sub-class
EquiJoin.
Join.analyzeCondition()| Modifier and Type | Field and Description |
|---|---|
ImmutableIntList |
leftKeys |
ImmutableIntList |
rightKeys |
| Modifier | Constructor and Description |
|---|---|
protected |
JoinInfo(ImmutableIntList leftKeys,
ImmutableIntList rightKeys)
Creates a JoinInfo.
|
| Modifier and Type | Method and Description |
|---|---|
RexNode |
getEquiCondition(RelNode left,
RelNode right,
RexBuilder rexBuilder) |
abstract RexNode |
getRemaining(RexBuilder rexBuilder) |
abstract boolean |
isEqui()
Returns whether this is an equi-join.
|
List<ImmutableIntList> |
keys() |
ImmutableBitSet |
leftSet() |
static JoinInfo |
of(ImmutableIntList leftKeys,
ImmutableIntList rightKeys)
Creates an equi-join.
|
static JoinInfo |
of(RelNode left,
RelNode right,
RexNode condition)
Creates a
JoinInfo by analyzing a condition. |
List<IntPair> |
pairs()
Returns a list of (left, right) key ordinals.
|
ImmutableBitSet |
rightSet() |
public final ImmutableIntList leftKeys
public final ImmutableIntList rightKeys
protected JoinInfo(ImmutableIntList leftKeys, ImmutableIntList rightKeys)
public static JoinInfo of(RelNode left, RelNode right, RexNode condition)
JoinInfo by analyzing a condition.public static JoinInfo of(ImmutableIntList leftKeys, ImmutableIntList rightKeys)
public abstract boolean isEqui()
public ImmutableBitSet leftSet()
public ImmutableBitSet rightSet()
public abstract RexNode getRemaining(RexBuilder rexBuilder)
public RexNode getEquiCondition(RelNode left, RelNode right, RexBuilder rexBuilder)
public List<ImmutableIntList> keys()
Copyright © 2012–2015 The Apache Software Foundation. All rights reserved.