return call.clone(call.getType(), list);
public RexNode visitCall(RexCall call) { final List<RexNode> newOperands = new ArrayList<RexNode>(); for (RexNode operand : call.getOperands()) { newOperands.add(operand.accept(this)); } return call.clone(call.getType(), newOperands); }
public RexNode visitCall(RexCall call) { final List<RexNode> newOperands = new ArrayList<RexNode>(); for (RexNode operand : call.getOperands()) { newOperands.add(operand.accept(this)); } return call.clone(call.getType(), newOperands); }
private static RexCall call2( boolean harmonize, RexToLixTranslator translator, RexCall call) { if (!harmonize) { return call; } final List<RexNode> operands2 = harmonize(translator, call.getOperands()); if (operands2.equals(call.getOperands())) { return call; } return call.clone(call.getType(), operands2); }
private static RexCall call2( boolean harmonize, RexToLixTranslator translator, RexCall call) { if (!harmonize) { return call; } final List<RexNode> operands2 = harmonize(translator, call.getOperands()); if (operands2.equals(call.getOperands())) { return call; } return call.clone(call.getType(), operands2); }
builder.add(go(operand)); return call.clone(call.getType(), builder.build()); } else if (rex instanceof RexInputRef) { RexInputRef var = (RexInputRef) rex;
builder.add(go(operand)); return call.clone(call.getType(), builder.build()); } else if (rex instanceof RexInputRef) { RexInputRef var = (RexInputRef) rex;
public RexNode visitCall(RexCall call) { List<RexNode> normalizedOperands = new ArrayList<RexNode>(); int diffCount = 0; for (RexNode operand : call.getOperands()) { operand.accept(this); final RexNode normalizedOperand = lookup(operand); normalizedOperands.add(normalizedOperand); if (normalizedOperand != operand) { ++diffCount; } } if (diffCount > 0) { call = call.clone( call.getType(), normalizedOperands); } return register(call); }
public RexNode visitCall(RexCall call) { List<RexNode> normalizedOperands = new ArrayList<RexNode>(); int diffCount = 0; for (RexNode operand : call.getOperands()) { operand.accept(this); final RexNode normalizedOperand = lookup(operand); normalizedOperands.add(normalizedOperand); if (normalizedOperand != operand) { ++diffCount; } } if (diffCount > 0) { call = call.clone( call.getType(), normalizedOperands); } return register(call); }
return call.clone(call.getType(), list);