/** * Returns a copy of an array of row-expressions. */ public static RexNode [] clone(RexNode [] exps) { if (null == exps) { return null; } RexNode [] exps2 = new RexNode[exps.length]; for (int i = 0; i < exps.length; i++) { exps2[i] = exps[i].clone(); } return exps2; }
public RexNode expand(RexCall call) { List<RexNode> operands = call.operands; RexCall subCall = (RexCall) operands.get(0); RexNode innerValue = subCall.operands.get(0); if (canSimplify(call, subCall, innerValue)) { return innerValue.clone(); } return call; }
public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { assert traitSet.comprises(Convention.NONE); return new MultiJoinRel( getCluster(), inputs, joinFilter.clone(), rowType, isFullOuterJoin, outerJoinConditions, joinTypes, projFields, cloneJoinFieldRefCountsMap(), postJoinFilter); }
exprs.add(expr.clone());
RexNode cloneCall = exp.clone(); RexNode fieldAccess = rexBuilder.makeFieldAccess(
final VariableReplacer variableReplacer = new VariableReplacer(rexBuilder, leftRowType, rightRowType); final RexNode oldCondition = join.getCondition().clone(); RexNode condition = variableReplacer.go(oldCondition);
assert !RexLiteral.isNullLiteral(operands.get(0)); RexNode operand = operands.get(0).clone(); RelDataType fromType = operand.getType(); RelDataType toType = call.getType();