code: protected List appendListOfColumnsForSelect(StringBuffer buf)
      {
          FieldDescriptor[] fieldDescriptors = getFieldsForSelect();
          ArrayList columnList = new ArrayList();
          TableAlias searchAlias = getSearchTable();
          
          for (int i = 0; i < fieldDescriptors.length; i++)
          {
              FieldDescriptor field = fieldDescriptors[i];
              TableAlias alias = getTableAliasForClassDescriptor(field.getClassDescriptor());
              if (alias == null)
              {
                  alias = searchAlias;
              }
              if (i > 0)
              {
                  buf.append(",");
              }
              appendColumn(alias, field, buf);
              columnList.add(field.getAttributeName());
          }
          
          appendClazzColumnForSelect(buf);
          return columnList;
      }
docs: Appends to the statement a comma separated list of column names.
  
  DO NOT use this if order of columns is important. The row readers build reflectively and look up
  column names to find values, so this is safe. In the case of update, you CANNOT use this as the
  order of columns is important.
  
  @return list of column names for the set of all unique columns for multiple classes mapped to the
  same table.