RexNode newCondition = RexUtil.flatten(rexBuilder, RexUtil.composeConjunction(rexBuilder, newJoinCondition, false)); List<RelNode> newInputsArray = Lists.newArrayList(newInputs);
RexNode newCondition = RexUtil.flatten(rexBuilder, RexUtil.composeConjunction(rexBuilder, newJoinCondition, false)); List<RelNode> newInputsArray = Lists.newArrayList(newInputs);
RexCall call = (RexCall) expr; expr = cluster.getRexBuilder().makeCall(retType, call.getOperator(), RexUtil.flatten(call.getOperands(), call.getOperator()));
whereFilter.getTraitSet(), whereFilter.getInput(), RexUtil.flatten( getCluster().getRexBuilder(), makeAnd(ImmutableList.of(whereFilter.getCondition(), makeOr(conditions)))
RexCall call = (RexCall) expr; expr = cluster.getRexBuilder().makeCall(retType, call.getOperator(), RexUtil.flatten(call.getOperands(), call.getOperator()));
@Override public RexNode visitCall(final RexCall call) { final List<RexNode> clonedOperands = visitList(call.operands, new boolean[]{true}); final SqlOperator sqlOperator = call.getOperator(); return RexUtil.flatten(rexBuilder, rexBuilder.makeCall( call.getType(), sqlOperator, clonedOperands)); } }
@Override public RexNode visitCall(final RexCall call) { final List<RexNode> clonedOperands = visitList(call.operands, new boolean[]{true}); final SqlOperator sqlOperator = DrillCalciteWrapperUtility.extractSqlOperatorFromWrapper(call.getOperator()); return RexUtil.flatten(rexBuilder, rexBuilder.makeCall( call.getType(), sqlOperator, clonedOperands)); } }
/** Flattens an expression. * * <p>Returns the same expression if it is already flat. */ public static RexNode flatten(RexBuilder rexBuilder, RexNode node) { if (node instanceof RexCall) { RexCall call = (RexCall) node; final SqlOperator op = call.getOperator(); final List<RexNode> flattenedOperands = flatten(call.getOperands(), op); if (!isFlat(call.getOperands(), op)) { return rexBuilder.makeCall(call.getType(), op, flattenedOperands); } } return node; }
/** Flattens an expression. * * <p>Returns the same expression if it is already flat. */ public static RexNode flatten(RexBuilder rexBuilder, RexNode node) { if (node instanceof RexCall) { RexCall call = (RexCall) node; final SqlOperator op = call.getOperator(); final List<RexNode> flattenedOperands = flatten(call.getOperands(), op); if (!isFlat(call.getOperands(), op)) { return rexBuilder.makeCall(call.getType(), op, flattenedOperands); } } return node; }
/** Converts a {@link SqlCall} to a {@link RexCall} with a perhaps different * operator. */ private RexNode convertCall( SqlRexContext cx, SqlCall call, SqlOperator op) { final List<SqlNode> operands = call.getOperandList(); final RexBuilder rexBuilder = cx.getRexBuilder(); final SqlOperandTypeChecker.Consistency consistency = op.getOperandTypeChecker() == null ? SqlOperandTypeChecker.Consistency.NONE : op.getOperandTypeChecker().getConsistency(); final List<RexNode> exprs = convertExpressionList(cx, operands, consistency); RelDataType type = rexBuilder.deriveReturnType(op, exprs); return rexBuilder.makeCall(type, op, RexUtil.flatten(exprs, op)); }
RexNode newCondition = RexUtil.flatten(rexBuilder, RexUtil.composeConjunction(rexBuilder, newJoinFilters, false)); final ImmutableMap<Integer, ImmutableIntList> newJoinFieldRefCountsMap =
/** Converts a {@link SqlCall} to a {@link RexCall} with a perhaps different * operator. */ private RexNode convertCall( SqlRexContext cx, SqlCall call, SqlOperator op) { final List<SqlNode> operands = call.getOperandList(); final RexBuilder rexBuilder = cx.getRexBuilder(); final SqlOperandTypeChecker.Consistency consistency = op.getOperandTypeChecker() == null ? SqlOperandTypeChecker.Consistency.NONE : op.getOperandTypeChecker().getConsistency(); final List<RexNode> exprs = convertExpressionList(cx, operands, consistency); RelDataType type = rexBuilder.deriveReturnType(op, exprs); return rexBuilder.makeCall(type, op, RexUtil.flatten(exprs, op)); }
/** Converts a {@link SqlCall} to a {@link RexCall} with a perhaps different * operator. */ private RexNode convertCall( SqlRexContext cx, SqlCall call, SqlOperator op) { final List<SqlNode> operands = call.getOperandList(); final RexBuilder rexBuilder = cx.getRexBuilder(); final SqlOperandTypeChecker.Consistency consistency = op.getOperandTypeChecker() == null ? SqlOperandTypeChecker.Consistency.NONE : op.getOperandTypeChecker().getConsistency(); final List<RexNode> exprs = convertExpressionList(cx, operands, consistency); RelDataType type = rexBuilder.deriveReturnType(op, exprs); return rexBuilder.makeCall(type, op, RexUtil.flatten(exprs, op)); }
(Filter) filterFactory.createFilter( bottomFilter.getInput(), RexUtil.flatten(rexBuilder, newCondition));
RexCall call = (RexCall) expr; expr = cluster.getRexBuilder().makeCall(retType, call.getOperator(), RexUtil.flatten(call.getOperands(), call.getOperator()));
whereFilter.getTraitSet(), whereFilter.getInput(), RexUtil.flatten( getCluster().getRexBuilder(), makeAnd(ImmutableList.of(whereFilter.getCondition(), makeOr(conditions)))