newLeftRel, newRightRel, decorrelateExpr(rel.getCondition()), rel.getJoinType(), variablesStopped);
JoinInfo.of(newInputs.get(0), newInputs.get(1), join.getCondition()); if (!joinInfo.isEqui()) { newInputs.get(0), newInputs.get(1), join.getCondition(), joinInfo.leftKeys, joinInfo.rightKeys,
@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; } } }
origJoinRel.getLeft(), origJoinRel.getRight(), origJoinRel.getCondition(), leftKeys, rightKeys); origJoinRel.getLeft(), origJoinRel.getRight(), origJoinRel.getCondition(), leftKeys, rightKeys); semiJoin, origJoinRel.getRight(), origJoinRel.getCondition(), JoinRelType.INNER, Collections.<String>emptySet(),
@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; } } }
public static boolean analyzeSimpleEquiJoin( JoinRel joinRel, int[] joinFieldOrdinals) { RexNode joinExp = joinRel.getCondition(); if (joinExp.getKind() != SqlKind.EQUALS) { return false;
int [] joinFieldOrdinals) RexNode joinExp = joinRel.getCondition(); if (joinExp.getKind() != RexKind.Equals) { return false;
left, right, join.getCondition(), leftExprs, rightExprs,
if (joinRel.getCondition().isAlwaysTrue()) { return; CalcRel.createFilter( cartesianJoinRel, joinRel.getCondition());
new PushProjector( origProj, joinRel.getCondition(), joinRel, preserveExprCondition); if (joinRel.getCondition() != null) { List<RelDataTypeField> projJoinFieldList = new ArrayList<RelDataTypeField>(); newJoinFilter = pushProject.convertRefsAndExprs( joinRel.getCondition(), projJoinFieldList, adjustments);
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); }
left, right, join.getCondition(), leftKeys, rightKeys);
joinLeft, joinRight, joinRel.getCondition(), joinRel.getJoinType(), Collections.<String>emptySet()));
newInputs, origJoinRel.getRowType().getFieldCount(), origJoinRel.getCondition(), joinFieldRefCountsList, newJoinFieldRefCountsMap);
joinSpecs.add(Pair.of(JoinRelType.INNER, (RexNode) null)); joinSpecs.add(Pair.of(joinType, joinRel.getCondition())); break; case RIGHT: joinSpecs.add(Pair.of(joinType, joinRel.getCondition())); if (rightCombined) { copyOuterJoinInfo(
final JoinInfo info = JoinInfo.of(left, right, join.getCondition()); if (!info.isEqui() && join.getJoinType() != JoinRelType.INNER) {
RelOptUtil.conjunctions(joinRel.getCondition());
final VariableReplacer variableReplacer = new VariableReplacer(rexBuilder, leftRowType, rightRowType); final RexNode oldCondition = join.getCondition().clone(); RexNode condition = variableReplacer.go(oldCondition);
newFilter = joinRel.getCondition();