public class JoinInfo extends Object
It is useful for the many algorithms that care whether a join has an equi-join condition.
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.
Join.analyzeCondition()| Modifier and Type | Field and Description |
|---|---|
ImmutableIntList |
leftKeys |
com.google.common.collect.ImmutableList<RexNode> |
nonEquiConditions |
ImmutableIntList |
rightKeys |
| Modifier | Constructor and Description |
|---|---|
protected |
JoinInfo(ImmutableIntList leftKeys,
ImmutableIntList rightKeys,
com.google.common.collect.ImmutableList<RexNode> nonEquiConditions)
Creates a JoinInfo.
|
| Modifier and Type | Method and Description |
|---|---|
RexNode |
getEquiCondition(RelNode left,
RelNode right,
RexBuilder rexBuilder) |
RexNode |
getRemaining(RexBuilder rexBuilder)
Deprecated.
|
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
public final com.google.common.collect.ImmutableList<RexNode> nonEquiConditions
protected JoinInfo(ImmutableIntList leftKeys, ImmutableIntList rightKeys, com.google.common.collect.ImmutableList<RexNode> nonEquiConditions)
public static JoinInfo of(RelNode left, RelNode right, RexNode condition)
JoinInfo by analyzing a condition.public static JoinInfo of(ImmutableIntList leftKeys, ImmutableIntList rightKeys)
public boolean isEqui()
public ImmutableBitSet leftSet()
public ImmutableBitSet rightSet()
@Deprecated public RexNode getRemaining(RexBuilder rexBuilder)
public RexNode getEquiCondition(RelNode left, RelNode right, RexBuilder rexBuilder)
public List<ImmutableIntList> keys()
Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.