} else { r = LogicalJoin.create(r, distinct, cluster.getRexBuilder().makeLiteral(true), ImmutableSet.<CorrelationId>of(), JoinRelType.INNER);
LogicalJoin.create(frame.r, valueGen, rexBuilder.makeLiteral(true), ImmutableSet.<CorrelationId>of(), JoinRelType.INNER);
LogicalJoin.create(left, right, joinCond, ImmutableSet.<CorrelationId>of(), joinType);
LogicalJoin.create(left, right, joinCond, ImmutableSet.<CorrelationId>of(), joinType);
case JOIN: final MutableJoin join = (MutableJoin) node; return LogicalJoin.create(fromMutable(join.getLeft()), fromMutable(join.getRight()), join.getCondition(), join.getVariablesSet(), join.getJoinType()); default:
RexUtil.composeConjunction(rexBuilder, conditions, false); RelNode newJoin = LogicalJoin.create(leftFrame.r, rightFrame.r, condition, ImmutableSet.<CorrelationId>of(), rel.getJoinType().toJoinType());
/** Creates a LogicalJoin. */ public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType) { return create(left, right, condition, variablesSet, joinType, false, ImmutableList.of()); }
public RelNode createJoin(RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType, boolean semiJoinDone) { return LogicalJoin.create(left, right, condition, variablesSet, joinType, semiJoinDone, ImmutableList.of()); }
/** Creates a LogicalJoin. */ public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType) { return create(left, right, condition, variablesSet, joinType, false, ImmutableList.of()); }
public RelNode createJoin(RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType, boolean semiJoinDone) { return LogicalJoin.create(left, right, condition, variablesSet, joinType, semiJoinDone, ImmutableList.of()); }
@Deprecated // to be removed before 2.0 public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped, boolean semiJoinDone, ImmutableList<RelDataTypeField> systemFieldList) { return create(left, right, condition, CorrelationId.setOf(variablesStopped), joinType, semiJoinDone, systemFieldList); }
@Deprecated // to be removed before 2.0 public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped, boolean semiJoinDone, ImmutableList<RelDataTypeField> systemFieldList) { return create(left, right, condition, CorrelationId.setOf(variablesStopped), joinType, semiJoinDone, systemFieldList); }
@Deprecated // to be removed before 2.0 public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) { return create(left, right, condition, CorrelationId.setOf(variablesStopped), joinType, false, ImmutableList.of()); }
@Deprecated // to be removed before 2.0 public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) { return create(left, right, condition, CorrelationId.setOf(variablesStopped), joinType, false, ImmutableList.of()); }
public void onMatch(RelOptRuleCall call) { final Delta delta = call.rel(0); Util.discard(delta); final Join join = call.rel(1); final RelNode left = join.getLeft(); final RelNode right = join.getRight(); final LogicalDelta rightWithDelta = LogicalDelta.create(right); final LogicalJoin joinL = LogicalJoin.create(left, rightWithDelta, join.getCondition(), join.getVariablesSet(), join.getJoinType(), join.isSemiJoinDone(), ImmutableList.copyOf(join.getSystemFieldList())); final LogicalDelta leftWithDelta = LogicalDelta.create(left); final LogicalJoin joinR = LogicalJoin.create(leftWithDelta, right, join.getCondition(), join.getVariablesSet(), join.getJoinType(), join.isSemiJoinDone(), ImmutableList.copyOf(join.getSystemFieldList())); List<RelNode> inputsToUnion = new ArrayList<>(); inputsToUnion.add(joinL); inputsToUnion.add(joinR); final LogicalUnion newNode = LogicalUnion.create(inputsToUnion, true); call.transformTo(newNode); } }
public void onMatch(RelOptRuleCall call) { final Delta delta = call.rel(0); Util.discard(delta); final Join join = call.rel(1); final RelNode left = join.getLeft(); final RelNode right = join.getRight(); final LogicalDelta rightWithDelta = LogicalDelta.create(right); final LogicalJoin joinL = LogicalJoin.create(left, rightWithDelta, join.getCondition(), join.getVariablesSet(), join.getJoinType(), join.isSemiJoinDone(), ImmutableList.copyOf(join.getSystemFieldList())); final LogicalDelta leftWithDelta = LogicalDelta.create(left); final LogicalJoin joinR = LogicalJoin.create(leftWithDelta, right, join.getCondition(), join.getVariablesSet(), join.getJoinType(), join.isSemiJoinDone(), ImmutableList.copyOf(join.getSystemFieldList())); List<RelNode> inputsToUnion = new ArrayList<>(); inputsToUnion.add(joinL); inputsToUnion.add(joinR); final LogicalUnion newNode = LogicalUnion.create(inputsToUnion, true); call.transformTo(newNode); } }
LogicalJoin.create(leftFrame.r, rightFrame.r, decorrelateExpr(currentRel, map, cm, rel.getCondition()), ImmutableSet.of(), rel.getJoinType());
public void rewriteRel(LogicalJoin rel) { LogicalJoin newRel = LogicalJoin.create(getNewForOldRel(rel.getLeft()), getNewForOldRel(rel.getRight()), rel.getCondition().accept(new RewriteRexShuttle()), rel.getVariablesSet(), rel.getJoinType()); setNewForOldRel(rel, newRel); }
public void rewriteRel(LogicalJoin rel) { LogicalJoin newRel = LogicalJoin.create(getNewForOldRel(rel.getLeft()), getNewForOldRel(rel.getRight()), rel.getCondition().accept(new RewriteRexShuttle()), rel.getVariablesSet(), rel.getJoinType()); setNewForOldRel(rel, newRel); }
@Test public void testTableReferencesJoinUnknownNode() { final String sql = "select * from emp limit 10"; final RelNode node = convertSql(sql); final RelNode nodeWithUnknown = new DummyRelNode( node.getCluster(), node.getTraitSet(), node); final RexBuilder rexBuilder = node.getCluster().getRexBuilder(); // Join final LogicalJoin join = LogicalJoin.create(nodeWithUnknown, node, rexBuilder.makeLiteral(true), ImmutableSet.of(), JoinRelType.INNER); final RelMetadataQuery mq = RelMetadataQuery.instance(); final Set<RelTableRef> tableReferences = mq.getTableReferences(join); assertNull(tableReferences); }