@Override
 public Void visitProjectOperator(ProjectOperator op, Pair<LogicalVariable, LogicalVariable> pair)
     throws AlgebricksException {
   List<LogicalVariable> usedVariables = op.getVariables();
   int n = usedVariables.size();
   for (int i = 0; i < n; i++) {
     LogicalVariable v = usedVariables.get(i);
     if (v.equals(pair.first)) {
       usedVariables.set(i, pair.second);
     }
   }
   substVarTypes(op, pair);
   return null;
 }
 @Override
 public Void visitProjectOperator(ProjectOperator op, Void arg) throws AlgebricksException {
   schemaVariables.addAll(op.getVariables());
   return null;
 }