@Override
 public void replaceInput(PlanNode oldInput, PlanNode newInput) {
   if (input == oldInput) {
     input = newInput;
     input.setOutput(this);
   }
 }
 public void setInput(PlanNode input) {
   this.input = input;
   input.setOutput(this);
 }
 protected BasePlanWithInput(PlanNode input) {
   this.input = input;
   if (input != null) input.setOutput(this);
 }