@Override public RexNode visitSubQuery(RexSubQuery subQuery) { return RexUtil.eq(subQuery, this.subQuery) ? replacement : subQuery; } }
@Override public RexNode visitSubQuery(RexSubQuery subQuery) { return RexUtil.eq(subQuery, this.subQuery) ? replacement : subQuery; } }
@Override public RexNode visitCall(final RexCall call) { if(!valueGenerator) { if(call.getOperands().size() == 2) { final List<RexNode> operands = new ArrayList<>(call.operands); RexNode o0 = operands.get(0); RexNode o1 = operands.get(1); boolean isCorrelated = false; if (o0 instanceof RexFieldAccess && (cm.mapFieldAccessToCorRef.get(o0) != null)) { o0 = decorrFieldAccess((RexFieldAccess) o0); isCorrelated = true; } if (o1 instanceof RexFieldAccess && (cm.mapFieldAccessToCorRef.get(o1) != null)) { o1 = decorrFieldAccess((RexFieldAccess) o1); isCorrelated = true; } if (isCorrelated && RexUtil.eq(o0, o1)) { return rexBuilder.makeCall(SqlStdOperatorTable.IS_NOT_NULL, o0); } final List<RexNode> newOperands = new ArrayList<>(); newOperands.add(o0); newOperands.add(o1); boolean[] update = {false}; List<RexNode> clonedOperands = visitList(newOperands, update); return relBuilder.call(call.getOperator(), clonedOperands); } } return super.visitCall(call); }
@Override public RexNode visitSubQuery(RexSubQuery subQuery) { return RexUtil.eq(subQuery, this.subQuery) ? replacement : subQuery; } }
private Logic end(RexNode node, Logic arg) { if (RexUtil.eq(node, seek)) { logicCollection.add(arg); } return arg; }
/** Removes all expressions from a list that are equivalent to a given * expression. Returns whether any were removed. */ public static boolean removeAll(List<RexNode> targets, RexNode e) { int count = 0; Iterator<RexNode> iterator = targets.iterator(); while (iterator.hasNext()) { RexNode next = iterator.next(); if (eq(next, e)) { ++count; iterator.remove(); } } return count > 0; }
@Override public boolean isNull(RexNode node) { return RexUtil.eq(node, operand) || super.isNull(node); } };
if (RexUtil.eq(first, second)) { return true;
if (RexUtil.eq(joinCondition, newJoinCondition)) { return null;
if (RexUtil.eq(o0, o1) && (unknownAs == FALSE || (!o0.getType().isNullable()
@Override public void onMatch(RelOptRuleCall call) { final Filter filter = call.rel(0); final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final String timeZone = filter.getCluster().getPlanner().getContext() .unwrap(CalciteConnectionConfig.class).timeZone(); final RexNode condition = replaceTimeUnits(rexBuilder, filter.getCondition(), timeZone); if (RexUtil.eq(condition, filter.getCondition())) { return; } final RelBuilder relBuilder = relBuilderFactory.create(filter.getCluster(), null); relBuilder.push(filter.getInput()) .filter(condition); call.transformTo(relBuilder.build()); } }