public boolean matches(RelOptRuleCall call) { JoinRel join = call.rel(0); switch (join.getJoinType()) { case INNER: case LEFT: return true; case FULL: case RIGHT: return false; default: throw Util.unexpected(join.getJoinType()); } }
public boolean matches(RelOptRuleCall call) { JoinRel join = call.rel(0); switch (join.getJoinType()) { case INNER: case LEFT: return true; case FULL: case RIGHT: return false; default: throw Util.unexpected(join.getJoinType()); } }
@Override public RelNode convert(RelNode rel) { JoinRel join = (JoinRel) rel; List<RelNode> newInputs = new ArrayList<RelNode>(); for (RelNode input : join.getInputs()) { if (!(input.getConvention() instanceof EnumerableConvention)) { input = convert( input, input.getTraitSet() .replace(EnumerableConvention.INSTANCE)); } newInputs.add(input); } try { return new EnumerableJoinRel( join.getCluster(), join.getTraitSet().replace(EnumerableConvention.INSTANCE), newInputs.get(0), newInputs.get(1), join.getCondition(), join.getJoinType(), join.getVariablesStopped()); } catch (InvalidRelException e) { tracer.warning(e.toString()); return null; } } }
@Override public RelNode convert(RelNode rel) { JoinRel join = (JoinRel) rel; List<RelNode> newInputs = new ArrayList<RelNode>(); for (RelNode input : join.getInputs()) { if (!(input.getConvention() == getOutTrait())) { input = convert( input, input.getTraitSet().replace(out)); } newInputs.add(input); } try { return new JdbcJoinRel( join.getCluster(), join.getTraitSet().replace(out), newInputs.get(0), newInputs.get(1), join.getCondition(), join.getJoinType(), join.getVariablesStopped()); } catch (InvalidRelException e) { tracer.warning(e.toString()); return null; } } }
if (joinRel.getJoinType().generatesNullsOnLeft()) { return; if (joinRel.getJoinType().generatesNullsOnRight()) { return; joinRight, joinRel.getCondition(), joinRel.getJoinType(), Collections.<String>emptySet()));
joinInfo.leftKeys, joinInfo.rightKeys, join.getJoinType(), join.getVariablesStopped()); } catch (InvalidRelException e) {
convert( newRight, traits ), newCondition, join.getJoinType(), join.getVariablesStopped(), 0 );
if (joinRel.getJoinType() != JoinRelType.INNER) { return; joinRel.getRight(), joinRel.getCluster().getRexBuilder().makeLiteral(true), joinRel.getJoinType(), Collections.<String>emptySet(), joinRel.isSemiJoinDone(),
final RelNode right = newInputs.get(1); final JoinInfo info = JoinInfo.of(left, right, join.getCondition()); if (!info.isEqui() && join.getJoinType() != JoinRelType.INNER) { info.leftKeys, info.rightKeys, join.getJoinType(), join.getVariablesStopped()); } catch (InvalidRelException e) {
RelDataTypeFactory typeFactory = joinRel.getCluster().getTypeFactory(); RelNode leftInputRel = joinRel.getLeft(); JoinRelType joinType = joinRel.getJoinType();
JoinRelType joinType = joinRel.getJoinType();
public void rewriteRel(JoinRel rel) { JoinRel newRel = new JoinRel( rel.getCluster(), getNewForOldRel(rel.getLeft()), getNewForOldRel(rel.getRight()), flattenFieldAccesses(rel.getCondition()), rel.getJoinType(), rel.getVariablesStopped()); setNewForOldRel(rel, newRel); }
public void rewriteRel(JoinRel rel) { JoinRel newRel = new JoinRel( rel.getCluster(), getNewForOldRel(rel.getLeft()), getNewForOldRel(rel.getRight()), flattenFieldAccesses(rel.getCondition()), rel.getJoinType(), rel.getVariablesStopped()); setNewForOldRel(rel, newRel); }
if (origJoinRel.getJoinType() != JoinRelType.INNER) { return;
remainingCondition, correlationList, join.getJoinType()); call.transformTo(newRel);
newJoinFilter, origJoinRel.getRowType(), (origJoinRel.getJoinType() == JoinRelType.FULL), newOuterJoinConds, joinTypes,
rightProjRel, newJoinFilter, joinRel.getJoinType(), Collections.<String>emptySet(), joinRel.isSemiJoinDone(),
JoinRelType joinType = join.getJoinType(); switch (joinType) { case LEFT:
joinInfo.getRemaining(join.getCluster().getRexBuilder()), correlationList, join.getJoinType()); call.transformTo(newRel);
JoinRelType joinType = joinRel.getJoinType();