final Project aggInputProject = call.rel(4); RelNode right = call.rel(5); final RelOptCluster cluster = correlate.getCluster();
final Project project = call.rel(3); RelNode right = call.rel(4); final RelOptCluster cluster = correlate.getCluster();
newJoin = HiveSemiJoin.getSemiJoin(rel.getCluster(), rel.getCluster().traitSetOf(HiveRelNode.CONVENTION), leftFrame.r, rightFrame.r, condition, ImmutableIntList.copyOf(leftKeys), ImmutableIntList.copyOf(rightKeys));
final LogicalProject aggInputProject = call.rel(4); RelNode right = call.rel(5); final RelOptCluster cluster = correlate.getCluster();
final LogicalProject project = call.rel(3); RelNode right = call.rel(4); final RelOptCluster cluster = correlate.getCluster();
@Override public LogicalCorrelate copy(RelTraitSet traitSet, RelNode left, RelNode right, CorrelationId correlationId, ImmutableBitSet requiredColumns, SemiJoinType joinType) { assert traitSet.containsIfApplicable(Convention.NONE); return new LogicalCorrelate(getCluster(), traitSet, left, right, correlationId, requiredColumns, joinType); }
@Override public LogicalCorrelate copy(RelTraitSet traitSet, RelNode left, RelNode right, CorrelationId correlationId, ImmutableBitSet requiredColumns, SemiJoinType joinType) { assert traitSet.containsIfApplicable(Convention.NONE); return new LogicalCorrelate(getCluster(), traitSet, left, right, correlationId, requiredColumns, joinType); }
ImmutableBitSet.of(left.getRowType().getFieldCount()), correlate.getJoinType()); RelBuilder builder = DrillRelFactories.LOGICAL_BUILDER.create(correlate.getCluster(), null); builder.push(newCorrelate);
final LogicalProject project = call.rel(3); RelNode right = call.rel(4); final RelOptCluster cluster = correlate.getCluster();
final LogicalProject project = call.rel(3); RelNode right = call.rel(4); final RelOptCluster cluster = correlate.getCluster();
final RelBuilder builder = call.builder(); final RexBuilder rexBuilder = builder.getRexBuilder(); final RelOptCluster cluster = correlate.getCluster();
final RelBuilder builder = call.builder(); final RexBuilder rexBuilder = builder.getRexBuilder(); final RelOptCluster cluster = correlate.getCluster();
final LogicalProject project = call.rel(3); RelNode right = call.rel(4); final RelOptCluster cluster = correlate.getCluster();
final RelBuilder builder = call.builder(); final RexBuilder rexBuilder = builder.getRexBuilder(); final RelOptCluster cluster = correlate.getCluster();
@Override public void onMatch(RelOptRuleCall call) { final LogicalCorrelate correlate = call.rel(0); final RelNode left = correlate.getLeft(); final RelNode right = correlate.getRight(); final RelNode convertedLeft = convert(left, left.getTraitSet().plus(DrillRel.DRILL_LOGICAL).simplify()); final RelNode convertedRight = convert(right, right.getTraitSet().plus(DrillRel.DRILL_LOGICAL).simplify()); final RelTraitSet traits = correlate.getTraitSet().plus(DrillRel.DRILL_LOGICAL); DrillLateralJoinRel lateralJoinRel = new DrillLateralJoinRel(correlate.getCluster(), traits, convertedLeft, convertedRight, false, correlate.getCorrelationId(), correlate.getRequiredColumns(), correlate.getJoinType()); call.transformTo(lateralJoinRel); } }