/** * Factory method that creates a join. * A subclass can override to use a different kind of join. * * @param left Left input * @param right Right input * @param condition Join condition * @param joinType Join type * @param variablesStopped Set of names of variables which are set by the * LHS and used by the RHS and are not available to * nodes above this JoinRel in the tree * @return A relational expression representing a join */ protected RelNode createJoin( RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) { return new JoinRel( cluster, left, right, condition, joinType, variablesStopped); }
/** * Factory method that creates a join. * A subclass can override to use a different kind of join. * * @param left Left input * @param right Right input * @param condition Join condition * @param joinType Join type * @param variablesStopped Set of names of variables which are set by the * LHS and used by the RHS and are not available to * nodes above this JoinRel in the tree * @return A relational expression representing a join */ protected RelNode createJoin( RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) { return new JoinRel( cluster, left, right, condition, joinType, variablesStopped); }
/** * Factory method that creates a join. * A subclass can override to use a different kind of join. * * @param left Left input * @param right Right input * @param condition Join condition * @param joinType Join type * @param variablesStopped Set of names of variables which are set by the * LHS and used by the RHS and are not available to nodes above this JoinRel * in the tree * @return A relational expression representing a join */ protected RelNode createJoin( RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) { return new JoinRel( cluster, left, right, condition, joinType, variablesStopped); }
public RelNode createJoin(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped, boolean semiJoinDone) { final RelOptCluster cluster = left.getCluster(); return new JoinRel(cluster, left, right, condition, joinType, variablesStopped, semiJoinDone, ImmutableList.<RelDataTypeField>of()); } }
args, longType, null))); JoinRel join = new JoinRel(cluster, bb.root, aggregate, rexBuilder.makeLiteral(true), JoinRelType.INNER, ImmutableSet.<String>of());
@Override public JoinRel copy( RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right) { assert traitSet.containsIfApplicable(Convention.NONE); return new JoinRel( getCluster(), left, right, conditionExpr, this.joinType, new HashSet<String>(this.variablesStopped), this.semiJoinDone, systemFieldList); }
@Override public JoinRel copy(RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) { assert traitSet.containsIfApplicable(Convention.NONE); return new JoinRel( getCluster(), left, right, conditionExpr, joinType, this.variablesStopped, semiJoinDone, this.systemFieldList); }
new JoinRel( rel.getCluster(), newLeftChildRel,
new JoinRel( rel.getCluster(), newLeftChildRel,
} else { resultRel = new JoinRel( cluster, resultRel,
new JoinRel( rel.getCluster(), newLeftRel,
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); }
new JoinRel( origJoinRel.getCluster(), semiJoin,
new JoinRel( joinRel.getCluster(), joinRel.getLeft(),
new JoinRel( cluster, joinLeft,
new JoinRel( joinRel.getCluster(), leftProjRel,
.accept(new RexPermuteInputsShuttle(bottomMapping, relA, relC)); final JoinRel newBottomJoin = new JoinRel( cluster, relA, relC, newBottomCondition, JoinRelType.INNER, Collections.<String>emptySet()); @SuppressWarnings("SuspiciousNameCombination") final JoinRel newTopJoin = new JoinRel( cluster, newBottomJoin, relB, newTopCondition, JoinRelType.INNER, Collections.<String>emptySet());
new JoinRel( join.getCluster(), join.getRight(),
new JoinRel( joinRel.getCluster(), leftRel,