docs: public NodeSchema toTVEAndFixColumns(Map<String, Pair<String, Integer>> nameMap) {
        final NodeSchema ns = copyAndReplaceWithTVE();    // First convert all non-TVE expressions to TVE in a copy
         m_columns.clear();
         m_columnsMapHelper.clear();
         for(int indx = 0; indx < ns.size(); ++indx) {    // then update columns
             final SchemaColumn sc = ns.getColumn(indx);
             assert(sc.getExpression() instanceof TupleValueExpression);
             if(nameMap.containsKey(sc.getColumnName())) {
                 final String newColName = nameMap.get(sc.getColumnName()).getFirst();
                 sc.reset(sc.getTableName(), sc.getTableAlias(), newColName, sc.getColumnAlias());
                 sc.setDifferentiator(indx);
                 TupleValueExpression exp = (TupleValueExpression) sc.getExpression();
                 exp.setColumnIndex(indx);
                 exp.setColumnName(newColName);
                 exp.setDifferentiator(indx);
             }
         }
         for(SchemaColumn sc : ns) {
             addColumn(sc);
         }
         return this;
      }