/** Creates a SemiJoin. */ public static SemiJoin create(RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys) { final RelOptCluster cluster = left.getCluster(); return new SemiJoin(cluster, cluster.traitSetOf(Convention.NONE), left, right, condition, leftKeys, rightKeys); }
/** Creates a SemiJoin. */ public static SemiJoin create(RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys) { final RelOptCluster cluster = left.getCluster(); return new SemiJoin(cluster, cluster.traitSetOf(Convention.NONE), left, right, condition, leftKeys, rightKeys); }
@Override public SemiJoin copy(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) { assert joinType == JoinRelType.INNER; final JoinInfo joinInfo = JoinInfo.of(left, right, condition); assert joinInfo.isEqui(); return new SemiJoin(getCluster(), traitSet, left, right, condition, joinInfo.leftKeys, joinInfo.rightKeys); }
@Override public SemiJoin copy(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) { assert joinType == JoinRelType.INNER; final JoinInfo joinInfo = JoinInfo.of(left, right, condition); assert joinInfo.isEqui(); return new SemiJoin(getCluster(), traitSet, left, right, condition, joinInfo.leftKeys, joinInfo.rightKeys); }
leftKeys, rightKeys); joinRel = new SemiJoin(cluster, cluster.traitSetOf(HiveRelNode.CONVENTION), inputRels[0], inputRels[1], calciteJoinCond, ImmutableIntList.copyOf(leftKeys), ImmutableIntList.copyOf(rightKeys));