code: public AbstractExpression resolveTVE(TupleValueExpression tve) {
          AbstractExpression resolvedExpr = processTVE(tve, tve.getColumnName());
  
          List<TupleValueExpression> tves = ExpressionUtil.getTupleValueExpressions(resolvedExpr);
          for (TupleValueExpression subqTve : tves) {
              resolveLeafTve(subqTve);
          }
          return resolvedExpr;
      }
docs: The parameter tve is a column reference, obtained
  by parsing a column ref VoltXML element.  We need to
  find out to which column in the current table scan the
  name of the TVE refers, and transfer metadata from the
  schema's column to the tve.  The function processTVE
  does the transfer.
  
  In some cases the tve may actually be replaced by some
  other expression.  In this case we do the resolution
  for all the tves in the new expression.
  @param tve
  @return